プログラミング言語Perlで、LinuxコマンドラインのBash言語、Powershellやcmdから、改行あり複数行(multiline)のテキストデータ・テキストファイルを正規表現置換する方法について紹介します。
ASUS:/mnt/c/pg$ printf "hoge\nfuga\nfoo" | perl -pe 's/.*fuga//igs'
hoge
ASUS:/mnt/c/pg$ printf "hoge\nfuga\nfoo" | perl -pe 'BEGIN{undef $/;} s/.*fuga//smg'
foo
Rubyはオプション指定するだけでいいんですけどねー…。
Bashから標準入力渡して複数行の置換って場合は、sedは無理、Pythonもできなげ、んで残ったのがこのperlと、あとたぶんRubyでもできると思います。PHPもできるのかな。
今はPerlでやったけどRubyの方がコードは短くできると思う。