sed - 複数の連続置換を実行しますが、ファイルを一度だけ処理する方法は何ですか?

sed - 複数の連続置換を実行しますが、ファイルを一度だけ処理する方法は何ですか?

たとえば、連続交換が必要な複数の交換を実行する場合

sed -i '/^[[:space:]]*browser.*\.should/s/browser/expect(browser/' t1_spec.rb
sed -i '/expect(browser.*\.should/s/\.should/).should/' t1_spec.rb
sed -i 's/\.should/\.to/' t1_spec.rb 
sed -i 's/==/eq/' t1_spec.rb 

t1_spec.fileを1回だけ繰り返し、ファイルを4回繰り返すのではなく、1行に4回の置換を実行するより良い方法はありますか?

ベストアンサー1

セミコロンを使用することに加えて、flagsを使用してsedに複数の式を提供できます-e

sed -i -e 's/expr1/replace1/' -e 's/expr2/replace2/'  t1_spec.rb 

おすすめ記事