我有大约 100 个 *.txt 文件。
我想删除/替换txt文件的后缀。
我如何在 LINUX 中做到这一点。
Example:
1_S9_001.f.txt
2_S13_001.f.txt
3_S23_001.f.txt
4_S45_001.f.txt
5_S90_001.f.txt
Changing the file name:
1_S9.txt
2_S13.txt
3_S23.txt
4_S45.txt
5_S90.txt
Renaming:
1_S9_rt.txt
2_S13_rt.txt
3_S23_rt.txt
4_S45_rt.txt
5_S90_rt.txt
Run Code Online (Sandbox Code Playgroud)
根据系统的不同,命令的行为rename可能会有很大不同。检查man页面了解详细信息。
第一种类型更简单,您只需告诉它要替换什么字符串以及用什么字符串替换它:
rename _001.f "" *_001.f.txt
rename _001.f _rt *_001.f.txt
Run Code Online (Sandbox Code Playgroud)
第二种类型使用 Perl 替换:
rename 's/_001\.f//' *_001.f.txt
rename 's/_001\.f/_rt/' *_001.f.txt
Run Code Online (Sandbox Code Playgroud)
或者您可以使用循环和参数扩展自行构造新名称:
for f in *_001.f.txt ; do
mv "$f" "${f%_001.f.txt}".txt
mv "$f" "${f%_001.f.txt}"_rt.txt
done
Run Code Online (Sandbox Code Playgroud)
%“从右侧删除”的意思与#从左侧删除类似。