嗨,我正在尝试使用bash脚本或仅在命令行中重命名一批文件,但似乎找不到关于首次出现字符之前如何删除字符的任何内容。
现在我的文件被命名为:
author1_-_year_-_title_name.txt
author2_-_year_-_title_name.txt
而且我希望他们看起来像
_-_year_-_title_name.text
甚至
year_-_title_name.text
我在命令行中尝试过sed:
sed 's/^[^_-_]* _-_ //' *
但是这仅是尝试编辑文本文件,而不是文件名
for fp in ./*_-_*; do
echo mv "$fp" "${fp#*_-_}"
done
如果输出看起来不错,请删除echo
。
rename -n s/[^-]*-_// *.txt
输出将如下。
rename(author1_-_year_-_title_name.txt, year_-_title_name.txt)
rename(author2_-_year_-_title_name.txt, year_-_title_name.txt)
一旦您对以上结果感到满意(仅在终端上显示),请删除以上命令中的-n
选项,它应该重命名文件。