[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