[root@default tmp]# ls ff31 fff1 fff3
然后rename它们:
[root@default tmp]# rename ff ffz fff[0-1] [root@default tmp]# ls ff31 fff3 ffzf1
可以看到,最后一个参数用正则限制了匹配上的文件列表。而第一个参数也是从左至右优先匹配的。相比之下,perl版的rename就完全是一个正则表达式的游戏了。命令格式:
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ] -v, --verboseVerbose: print names of files successfully renamed. -n, --no-actNo Action: show what files would have been renamed. -f, --forceForce: overwrite existing files.
简单的rename使用命令:
字母的替换 rename "s/AA/aa/" * //把文件名中的AA替换成aa 修改文件的后缀 rename "s/.html/.php/" * //把.html 后缀的改成 .php后缀 批量添加文件后缀 rename "s/$/.txt/" * //把所有的文件名都以txt结尾 批量删除文件名 rename "s/.txt//" * //把所有以.txt结尾的文件名的.txt删掉
比如在windows 7下复制整个文件夹下的文件再拷入同一文件夹,会产生很多文件名后加上“ – 副本”的文件,拷入linux下之后,感觉中文文件名操作不便,就可以用:
rename "s/ - 副本/_bak/" *
来一次性把所有文件改为后面加_bak的形式。其实能看出perl的正则替换表达式与vi的替换表达式还是很象的。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/458.html