sed 概要
`sed` は入力ストリームから1行ずつ読み込み、指定されたルール(スクリプト)に従って処理した後、結果を標準出力に送ります。元のファイルは基本的に変更されず、変更内容をファイルに保存するにはリダイレクション(`>`)を使用するか、`-i` オプションを使用する必要があります。
sedの主な役割
`sed` コマンドは主に次のような目的で使用されます:
主な活用分野
- テキストの置換: ファイル内の特定の文字列を他の文字列に置き換えます。(最も一般的な用途)
- 行の削除/追加: 特定のパターンを含む行を削除したり、特定の位置に新しい行を挿入します。
- パターンマッチングと出力: 特定のパターンに一致する行のみを出力したり、特定の範囲の行のみを処理します。
- ファイルフォーマットの変更: テキストファイルの形式を変換したり、データを再整列します。
- スクリプトの自動化: 大量のテキストファイルを一括処理するシェルスクリプトで重要な役割を果たします。
sedの基本構造
`sed` の基本コマンド構造は `sed [OPTIONS] 'スクリプト' [INPUT_FILE...]` です。ここで 'スクリプト' は `[アドレス]コマンド[引数]` 形式を持ち、最も重要なコマンドは `s` (substitute, 置換) です。
主要 sed コマンドオプション
`sed` コマンドは入力処理方法、スクリプト指定、出力制御などさまざまなオプションを提供し、柔軟なテキスト編集を可能にします。
1. スクリプトおよびファイル処理オプション
2. 置換(s) コマンドフラグ
3. その他の便利なコマンド
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`sed` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
`sed` コマンドのさまざまな活用例を通じて、テキストファイルの内容を効果的に検索、置換、削除する方法を学びましょう。
ファイル内のすべての 'old' を 'new' に置換
sed 's/old/new/g' example.txt
`example.txt` ファイルで 'old' というすべての単語を 'new' に変更し、結果を標準出力に表示します。
元のファイルを直接修正しながら文字列を置換
sed -i.bak 's/DEBUG=true/DEBUG=false/' config.conf
`config.conf` ファイルで 'DEBUG=true' を 'DEBUG=false' に直接変更し、元のファイルのバックアップ(`.bak` 拡張子)を作成します。
特定の行番号の行を削除
sed '5d' log.txt
`log.txt` ファイルで5行目を削除し、結果を出力します。
範囲内の行を削除
sed '10,20d' document.txt
`document.txt` ファイルで10行目から20行目までの内容を削除し、出力します。
特定のパターンがある行を削除
sed '/WARNING/d' errors.log
`errors.log` ファイルで 'WARNING' という単語が含まれるすべての行を削除し、結果を出力します。
ファイル内容にヘッダー行を挿入
sed '1i\Name,Age,City' data.csv
`data.csv` ファイルの最初の行の上に新しいヘッダー行を挿入します。
空行を削除
sed '/^$/d' text.txt
`text.txt` ファイルからすべての空行を削除します。`^$` は空行を意味する正規表現です。