之前把筆記從 Evernote 匯出成 Markdown,然後轉移到 Obsidian 時,出現了很多怪異的 Tags,像是:
Tags: #07-Tags: #04-- ……
這些 tag 每種都有好幾十個,如果我一份一份手動打開來刪,我大概花了三小時還處理不完。
這時就能感受到終端機的強大了。
script 檔
我寫了一個 script 檔(rm-tag.sh):
#!/usr/bin/env bash
pattern="$1"
find ./ -type f -name '*.md' -exec sed -i '' "/^$pattern$/d" {} +
程式解釋
find ./:從現在所在的資料夾往下找所有檔案和資料夾。-type f:指定要找檔案(file),不要資料夾。-name '*.md':只搜尋副檔名為.md的檔案。-exec ... {} +:對前面選取的那些.md操作「...」。sed -i '' "/^$pattern$/d":用sed工具去編輯檔案,把找到對應的「pattern」刪掉。-i '':直接修改原檔案^:行開頭$:行結尾d:刪除這一行
所以我如果在終端機輸入 rm-tag.sh 'Tag(s): #07-',這個 script 做的事就是:
「在這個路徑底下,遍歷每一個
.md檔。如果這些檔案裡面有'Tag(s): #07-'這整行文字,就刪掉。」
實作
接下來陸續在終端機裡面輸入:
rm-tag.sh 'Tag(s): #07-'
rm-tag.sh 'Tag(s): #04-'
rm-tag.sh 'Tag(s): #-2021'
大概一兩分鐘,就搞定了!