例如:
有一批这样的文件:
AAAAXX20221117XXXX.rnx
BBBBXX20221118XXXX.rnx
CCCCXX20221119XXXX.rnx
DDDDXX20221120XXXX.rnx
保留前四个字符,和中间4个记录时间的字符(月日),文件后缀以年的后两位数+o命名,并将文件名中的大写改成小写
代码如下:
for i in `ls *.rnx`;
do name=`echo "${i:0:4}${i:10:4}.${i:4:2}o" | tr 'A-Z' 'a-z'`
mv "$i" "$name";
done
- 第一行:将文件中所有.rnx后缀的文件找到,用反引号将其结果付给i;这时i有些类似C语言中的一维数组,里面存储着所有符合要求的文件名
- 第二行:{i;0;4}表示截取i中0位置起,4个字符的内容,通过子串的截取重新构建成文件名; | 表示管道,将重新构建好的文件名进行大写转小写
- 第三行:mv表示移动文件,在当前目录下移动文件时,修改移动后的文件名实现文件的重命名操作
修改完后的文件名为:
aaaa1117.22o
bbbb1118.22o
cccc1119.22o
dddd1120.22o
将上述代码保存成.sh文件,到目标目录下运行即可。