[Shell] 使用sed 对文件命名统一管理

sed批量处理

sed是Linux下的一个流编辑器,使用sed可以对于文本中进行统一的批量处理。同时通过Linux里的pipeline可以巧妙的将文件名作为stdout输入给sed作处理。

代码

find . -maxdepth 1 -name '*.pdf' | while read filename; do newfilename=`echo $filename | sed 's/CS224n-2019-//g;s/ /-/g'`; oldfilename=`echo $filename | sed 's/ /\\\ /g'` ;echo mv $oldfilename $newfilename; done | bash

References

在此处的代码上添加了转义符的存在

https://stackoverflow.com/questions/31521420/batch-rename-files-regular-expression-on-mac

更多关于sed的链接

https://man.linuxde.net/sed
https://wiki.jikexueyuan.com/project/unix/regular-expressions.html

posted @ 2021-01-28 15:39  Harry666  阅读(162)  评论(0编辑  收藏  举报