根据文件内容重命名 txt 文件(OSX)

根据文件内容重命名 txt 文件(OSX)

我有大约 250 个 txt 文件,它们都名为 link.txt,并且它们始终在第 3 行/行上有这些信息:

标题:某种标题

我需要某种脚本来遍历这些文件,获取标题并将其作为文件名。文件夹结构为:1-links/20150528/1/,因此如果我可以在“1-links”中运行脚本,它会开始查找名为“link.txt”的文件,那就太好了。

我正在使用 Mac OSX。

谁能帮我吗?

答案1

类似的东西可以完成工作:

for i in `find . -name link.txt -type f`;
do
nn=$(sed -n -e 3p -e "s/title:\ // "$i")
mv "$i" "`dirname $i`/$nn"
done

如果要重命名路径中的最后一个目录而不是文件,则可以使用以下命令:

for i in `find . -name link.txt -type f`;
do
nn=$(sed  -n -e 's/title: //'  -e 3p $i)
odir=`dirname $i`
ndir=$(echo $odir|awk -v nn="$nn" -F\/ 'BEGIN {OFS="/"}  {$NF=nn;print}')
mv  "$odir" "$ndir"
done

相关内容