我在一个目录中有一堆文件。我需要将它们全部重命名,并去掉部分名称。例子:
老的:
64sdfdf2_test.txt363qww6.dat.z
64cvxc65_test.txt36ntg44.dat.z
6jtyjj54_test.txt3as3463.dat.z
新的:
64sdfdf2363qww6.dat.z
64cvxc6536ntg44.dat.z
6jtyjj543as3463.dat.z
注意:“_test.txt”是我需要删除的,并且在所有文件中都是相同的。
for i in *_test.txt*
do
new_name=`echo $i|sed 's/\(.*\)_test.txt\(.*\)/\1\2/g'
mv $i $new_name
done
我只测试了 sed 部分及其工作正常:
> echo "64sdfdf2_test.txt363qww6.dat.z" | sed 's/\(.*\)_test.txt\(.*\)/\1\2/g'
64sdfdf2363qww6.dat.z
请参阅 mmv 的手册页。就像是
mmv '*_test.txt*' '#1#2'
应该做的伎俩。