プログラミング

Perlで改行あり複数行を正規表現置換する

プログラミング言語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の方がコードは短くできると思う。

Multiline search replace with Perl – Stack Overflow

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です