sedからPerlに切り替えようとしています。しかし、このsed表現を同様の短い方法でPerlにどのように変更できますか?
sed -n '/patternmatch/s%stuff%changed%p' file
パターンを検索する必要があり、パターンが見つかった場合にのみ「stuff」を「changed」に置き換えます。
私ができる唯一の方法は、次のようなifステートメントを使用することです。
perl -ne 'if ( /patternmatch/ ) { s%stuff%changed%; print }' file
sedと同じくらい短いかもしれませんか?どのように?
PS:これを行う方法はpython
次のとおりです。ここで。
ベストアンサー1
修飾子フォームを使用してくださいif
。
perl -ne 's/stuff/changed/, print if /patternmatch/'
または、フロー制御におよびand
を使用できます。or
perl -ne '/patternmatch/ and s/stuff/changed/, print'