如果你只使用通配符(不是完整的正则表达式),那么你可能会尝试类似的东西
f='My123File.txt'
mv $f ${f/File/}
Run Code Online (Sandbox Code Playgroud)
如果你真的需要正则表达式,试试吧
f='My123File.txt'
mv $f $(echo $f | sed -e 's/File//')
Run Code Online (Sandbox Code Playgroud)
用户重命名,这是一个测试:
$ touch My123File.txt
$ rename 's/File//' My123File.txt
Run Code Online (Sandbox Code Playgroud)
看man rename。rename支持正则表达式,因此您可以执行以下操作 - 在安全的地方执行,例如 /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
Run Code Online (Sandbox Code Playgroud)
产生这个:
My123File.txt My456File.txt
File-999-123-My.txt File-999-456-My.txt
Run Code Online (Sandbox Code Playgroud)