unix命令重命名一组文件并取出部分名称

时间:2012-10-12 13:13:35

标签: unix command

我在dir中有一堆文件。我需要重命名所有这些部分名称。实施例:

旧:

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

请参阅mmv的联机帮助页。像

这样的东西
mmv '*_test.txt*' '#1#2'

应该做的伎俩。