如何从文件名中删除某些单词?

如何从文件名中删除某些单词?

我的文件位于以下目录中:import/images

Documents\ProductImages\1.jpg
Documents\ProductImages\2.jpg
Documents\ProductImages\3.jpg

如何Documents\ProductImages\从文件名中删除?

答案1

你可以试试这个:

for i in 'Documents\ProductImages\'*.jpg; do mv -n -- "$i" "${i##*\\}"; done

扩展${i##*\\}删除了与模式匹配的最长前缀,这里:直到最后一个反斜杠的所有内容都需要用另一个反斜杠进行转义。

答案2

rename如果您的系统上有的话,通常是处理此类事情的正确工具。

我知道有两个可能的版本。它们具有不同的语法,但都可以适用于您的示例。

通常部署在 Red Hat 系列上的版本是这样的

rename 'Documents\ProductImages\' '' *.jpg

其他版本可以这样做

rename 's/.*\\//' *.jpg

这假设您只想保留最后一个之后的部分\。如果你想更具体:

rename 's/^Documents\\ProductImages\\//' *.jpg

相关内容