根據檔案內容重新命名 txt 檔案 (OSX)

根據檔案內容重新命名 txt 檔案 (OSX)

我有大約 250 個 txt 文件,它們都名為 link.txt,並且這些資訊始終位於第 3 行/第 3 行:

title:某種標題

我需要某種可以遍歷這些文件的腳本,抓取標題並將其作為文件名稱。資料夾結構是: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

相關內容