[Mac] ディレクトリー内のファイルで指定行を一括置換する

Hitoshi Arakawa | 2024/11/20 Wed 04:35

Hugo の md ファイルで type: post が含まれる行を消すことにした。

しかしファイルは数千におよぶので、一括処理したい。

環境:
・macOS Sequoia 15.0.1(英語環境)

(1)GNU sed をインストールする。

$ brew install gnu-sed

(2)cd で作業ディレクトリーに移動。

(3)以下のコマンドを実行すると、ディレクトリー内の md ファイルすべてに対し、type: post の行を改行を含めて一括削除できる。

$ find . -name '*.md' -exec gsed -i ':a;N;$!ba;s/type:\ post\n//g' {} \;

参考:
MacでGNUのsedを使う
https://zenn.dev/captain_blue/articles/use-gnu-sed-on-mac

How can I replace each newline ( ) with a space using sed? - Stack Overflow
https://stackoverflow.com/questions/1251999/how-can-i-replace-each-newline-n-with-a-space-using-sed

[Mac] フォルダー内の全 csv ファイルで、最初の4行を削除する|荒川仁志
https://note.com/hitoshiarakawa/n/n7c58334eeab2

Amazon.co.jp: ゼロからわかる Linuxコマンド200本ノック―基礎知識と頻出コマンドを無理なく記憶に焼きつけよう! eBook : ひらまつ しょうたろう: 本
https://amzn.to/411wVKy