perl - 長い行を検索し、その中の単語を置き換えます。

perl - 長い行を検索し、その中の単語を置き換えます。

1行bashコマンド:長い行を検索し、その中の1つの単語を変更する方法は?

 perl -i -0pe 's/my long line/my right line/g' file

これはうまくいきますが、次のように読みやすいものがあります。

perl -i -0pe '\
SEARCH=my long line \
CHANGE=s/long/right/g \
' file

Perlを使うべきです。

答え1

perl -i -0pe '\
$match = quotemeta "my long line";\
$find = quotemeta 'long';\
$replace = 'right';\
s/$find/$replace/g if m/$match/;\
' file

sundeepが述べたように、変数を使用できます。正規表現の一致部分で変数を引用する必要があります。

関連情報