如何增加文件名中的数字

时间:2014-06-12 09:53:18

标签: shell

我文件夹中的所有文件都是这样命名的:

aodv-0-0.pcap aodv-1-0.pcap aodv-2-0.pcap aodv-3-0.pcap

是否有机会将它们重命名为:

1.pcap 2.pcap 3.pcap 4.pcap

aodv-0-0 ------> 1  aodv-1-0 ------> 2 等

我尝试使用“重命名”,但我不知道如何增加文件名中的数字。

#RENAMING the files

printf "...RENAMING the files to get proper a nodeID...\n"

cd /home/marcin/workspace/bake/source/ns-3.19/RESULTS/TRAFFIC_LIGHTS/
rename aodv- "" *.pcap

使用后我得到:

aodv-0-0.pcap     --->  0-0.pcap  (and i need 1.pcap)
aodv-1-0.pcap     --->  1-0.pcap  (and i need 2.pcap)

然后我可以使用数字(只是数字)作为变量“nodeID”。 我使用“basename”函数将文件名作为变量获取,但我不再需要“.pcap”扩展名作为变量。

提前致谢

1 个答案:

答案 0 :(得分:1)

ls aodv* | sed -e "p;s/aodv-//" -e "s/-.//" |xargs -n2 mv

反对增加:

ls aodv*|awk -F\. 'split($1,a,"-"){print $0,a[2]+1""FS""$2}'|xargs -n2 mv

ls输出通过管道输出到sed,然后我们使用p标志打印参数而不做任何修改,换句话说,就是文件的原始名称。

下一步是使用substitute命令更改文件扩展名。

结果是一个由old_file_name - >序列组成的组合输出。 new_file_name。

最后,我们通过xargs管理生成的Feed以获得文件的有效重命名。

http://nixtip.wordpress.com/2010/10/20/using-xargs-to-rename-multiple-files/