shell实例浅谈之二批量创建文件并重新命名

时间:2021-12-13 12:52:34

一、问题

     使用for循环批量创建10个文件,从linux-1到linux-10。并将上述文件的前缀改为unix。

二、解决

1、批量删除文件

批量创建命名从linux-1到linux-10的文件。

(1)方法一:常规方法

#使用for循环批量创建10个文件 linux-1到linux-10
#!/bin/sh

[ ! -d $PWD/file ] && mkdir -p $PWD/file && exit 1

for count in `seq 10`
do
touch $PWD/file/linux-$count
done

(2)方法二

#使用for循环批量创建10个文件 linux-1到linux-10
#!/bin/sh

if [ ! -d $PWD/file ] && mkdir -p $PWD/file
then
path=$PWD/file
for count in `seq 10`
do
cd $path && touch linux-$count
done
else
exit 1
fi

(3)方法三

使用shell命令:touch linux-{1..10}或touch linux-`seq 10`

(4)运行效果

shell实例浅谈之二批量创建文件并重新命名

2、文件更名

批量将从linux-1到linux-10的文件重新命名为从unix-1到unix-10的文件

(1)方法一

#使用for循环批量改名
#!/bin/sh

cd $PWD/file
for count in `seq 10`
do
mv linux-$count unix-$count
done

(2)方法二:常规方法

#使用for循环批量改名
#!/bin/sh

if [ -d $PWD/file ] && cd $PWD/file
then
for filename in `ls linux*`
do
mv $filename `echo $filename | sed "s/linux/unix/g"`
            #等价于 mv $filename unix-`echo $filename | cut -d"-" -f2`
            done
fi

(3)使用shell命令:rename linux unix linux*

(4)运行效果

shell实例浅谈之二批量创建文件并重新命名

三、总结

(1)sed、cut的用法可以查阅文档理解。

(2)批量处理的方法还有很多,选择最佳的方法处理。