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が述べたように、変数を使用できます。正規表現の一致部分で変数を引用する必要があります。