如何通过从文件名中删除某些字符来重命名linux中的文件?

时间:2012-02-23 03:14:12

标签: linux bash shell

如何在linux中重命名文件以从文件名中删除某些字符?

例如,

将My123File.txt重命名为My123.txt

3 个答案:

答案 0 :(得分:9)

如果你只使用通配符(不是完整的正则表达式),那么你可能会尝试像

这样的东西
f='My123File.txt'
mv $f ${f/File/}

此类shell扩展记录在here

如果你真的需要正则表达式,请尝试

f='My123File.txt'
mv $f $(echo $f | sed -e 's/File//')

答案 1 :(得分:4)

用户重命名,这是一个测试:

$ touch My123File.txt
$ rename 's/File//' My123File.txt

请参阅man renamerename支持regexp,因此您可以执行此操作 - 执行安全的地方,例如/ tmp左右:

cd /tmp
rm *.txt
touch My123File.txt My456File.txt
ls *.txt
rename 's/([A-Za-z]+)(\d+)(\w+)/$3-999-$2-$1/' *.txt
ls *.txt

得出这个:

My123File.txt  My456File.txt
File-999-123-My.txt  File-999-456-My.txt

答案 2 :(得分:0)

使用mmv,这是一个简单的命令。它还支持翻译,例如降低位置参数。

mmv '*File.txt' '#1.txt'