方永、南天紫云

道亦有道

shell批量重命名
2011年06月29日

描述: 一个目录有上百个文件,文件为f001.txt,f002.txt,f003.txt… 。dirindex文件有这样的内容:


f001
小说名一
f002
小说名二
f003
小说名三

…

将所有文件攺名为: 小说名一.txt,小说名二.txt,小说名三.txt… 脚本如下:

#!/bin/bash
for i in *.txt;do
    num=$(grep -n ${i%%.txt} dirindex | sed s/:.*//g)
    name=$(sed -n $((num+1))p dirindex | tr -d '\r').txt
    echo $name
    mv $i $name
done
exit

注:这个脚本时间比较长了,现用zsh,zmv很方便,这类问题很容易解决(2011.11.20)