0

我在一个目录中有一堆文件。我需要将它们全部重命名,并去掉部分名称。例子:

老的:

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”是我需要删除的,并且在所有文件中都是相同的。

4

2 回答 2

2
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
于 2012-10-12T13:22:20.330 回答
0

请参阅 mmv 的手册页。就像是

mmv '*_test.txt*' '#1#2'

应该做的伎俩。

于 2012-10-12T13:17:45.050 回答