之前把筆記從 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'
大概一兩分鐘,就搞定了!