【发布时间】:2013-12-02 21:56:27
【问题描述】:
我有很多要重命名的文件。
很像this
这就是我的文件的样子
something.pcap1
something.pcap10
something.pcap11
something.pcap12
...
something.pcap111
something.pcap1111
基本上我想重命名所有文件,以便数字用 0 填充,它们是 5 位数字。
something.pcap00001
【问题讨论】:
我有很多要重命名的文件。
很像this
这就是我的文件的样子
something.pcap1
something.pcap10
something.pcap11
something.pcap12
...
something.pcap111
something.pcap1111
基本上我想重命名所有文件,以便数字用 0 填充,它们是 5 位数字。
something.pcap00001
【问题讨论】:
一个简单的 for 循环就可以解决问题(可以是脚本文件):
for file in $(ls -1 something.pcap*); do
[[ ${file} =~ ^something.pcap([[:digit:]]*).* ]]
newfile=$(printf "something.pcap%05d" ${BASH_REMATCH[1]})
mv ${file} ${newfile}
done
【讨论】:
这样的?
rename 's/\d+$/sprintf("%05d",$&)/e' soemthing.pcap*
注意:这适用于 debian 及其衍生产品中的 rename。
【讨论】:
这样的事情呢?
#!/bin/bash
for i in $(ls something.pcap*); do
q=$(echo $i|sed -e 's/pcap/pcap00000/;s/pcap0*\([0-9]\{6,\}\)$/pcap\1/')
mv $i $q
done
我希望这会有所帮助
【讨论】: