GNU/Linux >> Linux の 問題 >  >> Linux

Unix Sed チュートリアル:複数の Sed コマンドを実行する方法

質問: 複数の sed コマンドを組み合わせることができますか? 2 つの sed コマンドを結合して、単一の sed コマンドとして実行できますか?

答え: 以前の記事では、単一のコマンド (印刷、削除、置換、ファイル書き込み) で sed を学びました。

この記事では、以下に示すように、オプション -e を使用して複数の sed コマンドを組み合わせる方法を確認します。

Syntax:

#sed -e 'command' -e 'command' filename

注: -e オプションは、単一コマンドの sed ではオプションです。 sed は、パターン バッファからの入力を処理しながら、コマンドの各セットを実行します。

最初に、以下で説明するすべての例で使用される geekstuff.txt ファイルを作成しましょう。

# cat thegeekstuff.txt
1. Linux - Sysadmin, Scripting etc.
2. Databases - Oracle, mySQL etc.
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development
10.Windows- Sysadmin, reboot etc.

1. 入力から 4 行目と 2 行目を削除

この sed の例では、ファイル thegeekstuff.txt から 4 行目と 2 行目を削除します。 「-e」オプションを使用すると、sed で任意の数のコマンドを指定できます。

$ sed -e '4d' -e '2d' thegeekstuff.txt
1. Linux - Sysadmin, Scripting etc.
3. Hardware
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development
10.Windows- Sysadmin, reboot etc.

2. pattern1 に一致する行と pattern2 に一致する行を出力します

この sed の例は、パターン「Storage」または「Software」のいずれかに一致するすべての行を出力します。

$ sed -n  -e '/Software/p'  -e '/Storage/p'  thegeekstuff.txt
5. Storage
9. Software Development

3.入力から最初、最後、およびすべての空白行を削除

この sed の例は、入力ファイルから最初の行、最後の行、およびすべての空白行を削除します。

$ sed -e '1d' -e '$d' -e '/^$/d' thegeekstuff.txt
2. Databases - Oracle, mySQL etc.
3. Hardware
4. Security (Firewall, Network, Online Security etc)
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)
8. Website Design
9. Software Development

Linux
  1. 再起動または起動時にコマンド/スクリプトを自動実行する方法

  2. Linuxコマンドラインで複数のファイルの文字列を置き換える方法

  3. 複数の UNIX コマンドを 1 つの出力に結合する

  1. Stdoutを複数のコマンドに送信する方法は?

  2. Unixの単一のコマンドまたはスクリプトで複数のファイルの名前を変更する方法は??

  3. Unix Sed チュートリアル:複数の Sed コマンドを実行する方法

  1. 複数の Linux コマンドを 1 行にまとめて実行する

  2. 検索を使用するときに複数のコマンドを実行するにはどうすればよいですか?

  3. 複数のスペースを 1 つのタブに置き換える方法