Linux Shell脚本在文件名中添加前导零
我有一个约有1,700个文件的文件夹。它们都被命名为like 1.txt
或1497.txt
,等等。我想重命名所有文件,以便所有文件名均为四位数。
即,23.txt
成为0023.txt
。
什么是可以执行此操作的shell脚本?或一个相关的问题:如何使用grep只匹配包含以下内容的行\d.txt
(即一位数字,然后是一个句点,然后是字母txt
)?
这是我到目前为止的内容:
for a in [command i need help with]do
mv $a 000$a
done
基本上,运行该命令3次,并在其中使用命令查找一位数字,两位数字和三位数字的文件名(更改了初始零的数目)。
回答:
尝试:
for a in [0-9]*.txt; do mv $a `printf %04d.%s ${a%.*} ${a##*.}`
done
[0-9]*.txt
根据需要更改文件名模式()。
通用枚举重命名,不对初始文件名集做任何假设:
X=1;for i in *.txt; do
mv $i $(printf %04d.%s ${X%.*} ${i##*.})
let X="$X+1"
done
以上是 Linux Shell脚本在文件名中添加前导零 的全部内容, 来源链接: utcz.com/qa/425078.html