参考: http://www.hao32.com/unix-linux/16.html
目的: 将文件名 “王立群读《史记》21_汉武帝11_琴挑文君.mp3” 改为 “王立群读史记21_汉武帝11_琴挑文君.mp3”
原因: 从网上下载的文件有2种名字,一种带《》,一种不带,导致文件排序乱了。
代码如下:
#!/bin/bash
for file in `ls ./`
do
mv $file "`echo $file | sed 's/《史记》/史记/g'`"
done
代码分析:
$ echo 王立群读《史记》21_汉武帝11_琴挑文君.mp3 | sed 's/《史记》/史记/g'
王立群读史记21_汉武帝11_琴挑文君.mp3
经测试, 上述代码中的双引号可以去掉:
"`echo $file | sed 's/《史记》/史记/g'`"
此代码还有个不严谨的地方: 对不含“《史记》”的文件也会执行mv操作,
当然由于“mv 文件名 相同文件名”而没有执行。
mv: "王立群读史记30_一代将星-王立群.mp3" 与"王立群读史记30_一代将星-王立群.mp3" 为同一文件