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

Unix Sed チュートリアル:Sed を使用してファイルに書き込む方法

この記事は Unix Sed チュートリアル シリーズの一部です。以前の記事では、sed の印刷操作、sed の削除操作、および sed の検索と置換について説明しました。

この記事では、あるファイルの一部を抽出し、sed を使用して別のファイルに書き込む方法を確認しましょう。

Sed は、パターン スペース データを新しいファイルに書き込む「w」コマンドを提供します。

Sed は、最初の入力行を読み取る前に、指定されたファイル名を作成または切り捨て、ファイルを閉じて再度開くことなく、すべての一致をファイルに書き込みます。

Syntax: 

#sed 'ADDERSSw outputfile' inputfilename

#sed '/PATTERN/w outputfile' inputfilename

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.

sed での書き込みコマンドの例をいくつか見てみましょう。

1.ファイルの 1 行目を書き込み

この例では、1 (アドレス) は入力の最初の行を参照し、w はパターン バッファーを出力ファイル「output.txt」に書き込みます。

$ sed -n '1w output.txt' thegeekstuff.txt

$ cat output.txt
1. Linux - Sysadmin, Scripting etc.

2.ファイルの最初と最後の行を書き込む

この例では、1 と $ はそれぞれ最初と最後の行を参照します。

$ sed -n -e '1w output.txt' -e '$w output.txt' thegeekstuff.txt

$ cat output.txt
1. Linux - Sysadmin, Scripting etc.
10.Windows- Sysadmin, reboot etc.

3.パターン Storage または Sysadmin に一致する行を書き込みます

この例では、sed コマンドはパターン「Storage」または「Sysadmin」に一致する行を書き込みます。

$ sed -n -e '/Storage/w output.txt' -e '/Sysadmin/w output.txt' thegeekstuff.txt

$ cat output.txt
1. Linux - Sysadmin, Scripting etc.
5. Storage
10.Windows- Sysadmin, reboot etc.

4.パターンが一致する行をファイルの最後まで書き込みます

この例では、/Storage/,$ は Storage からファイルの末尾までの行の一致を表します。

$ sed -n '/Storage/,$w output.txt' thegeekstuff.txt

$ cat output.txt
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.

5.パターンに一致する行と一致する次の 2 行を記述します

この例では、send コマンドは「Storage」に一致する行とその隣の 2 行を書き込みます。

$ sed -n '/Storage/,+2w output.txt' thegeekstuff.txt

$ cat output.txt
5. Storage
6. Cool gadgets and websites
7. Productivity (Too many technologies to explore, not much time available)

Linux
  1. Sedを使用してテキストファイルから複数のランダム行を削除する方法は?

  2. sed を使用してファイルの 1 行目にテキストを挿入するにはどうすればよいですか?

  3. ddを使用してFFでファイルをパディングする方法は?

  1. ファイル内の文字列を置き換える方法は?

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

  3. awkを使用してファイルをインプレースで変更するには? (sed -i と同様)

  1. パイプでティーを使用しているときにstderrをファイルに書き込むにはどうすればよいですか?

  2. Bashを使用して整数をバイナリファイルに書き込む方法は?

  3. LinuxでO_APPENDモードで開くを使用して、Cでファイルに追加する方法は?