特定の行の文字列をsedに置き換える

特定の行の文字列をsedに置き換える

特定の行で文字列を置き換える方法を知っています。たとえば、次のようになります。

sed -i "<line number>s/<old string>/<new string>/g" <file name>

しかし、複数行の文字列を置き換える方法がわかりません(たとえば、行番号1、10、100)。

ベストアンサー1

私が知る限り、sedアドレスには1行しか含めることができません。範囲ライン。

sed -f -ただし、シェルと一緒に標準入力から読み取るコマンドを使用して、何かを1つにまとめることができます。たとえば、

  printf '%ds/<old string>/<new string>/g\n' {1,10,100} | sed -f - file

おすすめ記事