根據文件內容重新命名資料資料夾

根據文件內容重新命名資料資料夾

我有一個 Markdown 檔案的資料夾 - 我需要批量重命名檔案。我需要在前面新增一個日期,該日期位於文件內,格式如下:

----
Title: Title-of-blog-article
Date: 2012-03-07

我設法找到一種使用 awk 獲取日期的方法。我似乎找不到合適的魔法來從 awk 中獲取該日期並用它重命名該文件。預期的命名方案:

OLD FILE
Title-of-blog-article.md

NEW FILE
2012-03-07-Title-of-blog-article.md

該資料夾中有 150 多個檔案。我嘗試過 bash for 循環並使用 mv 和 echo 對其進行了測試。到目前為止,在循環中 awk 變數從未改變,只是使用第一個檔案中的欄位。所以我絕對需要幫助。

答案1

可能效率不是很高,但怎麼樣

for f in *; do 
  d=$(awk '/^Date:/ {print $2; exit}' "$f")
  [[ -n "$d" ]] && echo mv --no-clobber -- "$f" "${d}-${f}"
done

echo一旦您確信它正在做正確的事情,請將其刪除。

相關內容