shell 命令之 批量改文件名

shell 命令之 批量改文件名

1. 如何写 shell

开头写#!/bin/bash,表示你的脚本由bash 来解释

之后就可以开始写命令行了,跟在终端输入命令一样,但可以一次写很复杂的命令,执行一些复杂的操作

#!/bin/bash

写完脚本,保存为sh后缀的文件aaa.sh 。另外,需要注意文件的格式应该为unix。

可以通过vi aaa.sh打开文件,然后在底部模式下, 执行:set ff 查看,可以看到fileformat=dos或者fileformat=unix
如果fileformat=unix, 那么 linux 系统可以执行;
如果fileformat=dos,那么需要进行格式修改,修改方法有几种:

方法一:vim aaa.sh进入aaa.sh后, 在底部模式下, 执行:set fileformat=unix后执行:x或者:wq保存修改。
方法二:直接执行sed -i "s/\r//" aaa.sh来转化。
方法三:直接执行dos2unix ./aaa.sh来转化。(如果失败, 加个busybox就可以了) busybox dos2unix ./aaa.sh

运行脚本

直接在终端执行./aaa.sh,就可以运行脚本了。

2. 实现批量文件解压改名的脚本

在文本编辑器中编写脚本,并保存为rename.sh.

#!/bin/bash
cd Group2/
ls > ls.log
#把文件夹名保存到ls.log
##使用for 循环,
for i in $(cat ls.log);
do #循环开始标志
cd $i
#跳到文件夹
 gzip -d *.gz
 #解压所有压缩文件
mv merger.vcf ../`echo $i`.vcf
# 将文件夹名添加到vcf文件名中,并移动文件到上一层目录
cd ..
done #循环结束标志
rm -f ls.log
# 删除ls.log 文件

在终端执行./rename.sh

你可能感兴趣的:(shell 命令之 批量改文件名)