1
我的目录中有一个类似于_3vaca3424434_1-lecture-introduction.pdf
的文件名列表,我想将其重命名为1-lecture-introduction.pdf
。我怎样才能做到这一点?使用shell脚本删除两个下划线之间的所有字母
我的目录中有一个类似于_3vaca3424434_1-lecture-introduction.pdf
的文件名列表,我想将其重命名为1-lecture-introduction.pdf
。我怎样才能做到这一点?使用shell脚本删除两个下划线之间的所有字母
for f in *; do
new_f=${f##_*_}
echo mv -- "$f" "$new_f"
done
查看上面的输出,如果命令看起来不错,请删除echo
并再次运行。
${f##_*_}
从值$f
中删除匹配模式_*_
的最长前缀。
谢谢@chepner! 'mv'后的'--'是什么意思? – alwc
只是一个预防措施。假设您有一个名为'-i'的文件。如果没有'--',它将被视为'mv'选项。有了它,任何跟随它的东西都将被严格视为论证,而不是一种选择。最有可能的是,你不需要它,但它不会受伤。 – chepner