テキスト操作に複数のsedコマンドを使用する

テキスト操作に複数のsedコマンドを使用する

いくつかの変更をしたいbashファイルがあります。

sed -i 's/      /    /g' testfile
sed -i -e 's/#[a-z]$//' -e '/^$/d' testfile
sed -i 's/ *$//' testfile
sed '/##=/ r header' testfile

最初のコマンドでTABをスペースに置き換えてから、コメント(##で始まるコメントも含む)と空白行を削除したいと思います。後で私のファイルで指定されたパターンの後にファイルを挿入したいと思います。コマンドの順序に問題がありますか?

答え1

1つのsedに複数の指示を提供できます。たとえば、次のようになります。

sed 's/\t/    /g;/^ *$/d;s/^#/NODIESE/' testfile

この行

  1. タブをスペースに置き換える
  2. 空の内容(または空の行)で始まる行を削除します。
  3. まず、DashをNODIESEに置き換えます。

したがって、テストファイルは一度だけ処理され、sedは一度だけ起動されます。

関連情報