sed またはストリーム エディター コマンドは、さまざまなパラメーターに従ってテキスト ファイルを変更するために使用できるプログラムです。 sed コマンドは、グローバル検索および置換アクションにも使用できます。一般的なコマンド オプションとその使用方法の一部を次の表に示します。
オプション | 説明 |
---|---|
-d | 特定のパターンまたは行番号に一致する行を削除します。 |
-n,p | パターンを含む行だけを印刷します。 |
ファイル内で最初に出現する文字列に置き換えます。 | |
S,g | ファイル内の出現ごとに元の文字列を置換文字列にグローバルに置き換えます。 |
構文
sed コマンドの一般的な構文は次のとおりです。
# sed {'option/address/ action'} {file names}
アドレスは、sed に特定の行のみを処理するか、特定の正規表現パターンに一致するテキストのみを処理するように指示します。それらはオプションです。アドレスの後には、一致が見つかったときに実行されるアクションが続きます。最後の引数は入力ファイルの名前です。オプション、アドレス、およびアクション パラメータは通常、一重引用符で囲みます。
sed コマンドの例
1. ファイルの各行で最初に出現する正規表現を置き換え、結果を出力します:
# sed 's/regular_expression/replace/' filename
2. ファイル内の拡張正規表現をすべて置換し、結果を出力します:
# sed -r 's/regular_expression/replace/g' filename
3. ファイル内のすべての文字列を置き換え、ファイルを上書きします (つまり、インプレース):
# sed -i 's/find/replace/g' filename
4. 行パターンに一致する行のみを置換:
# sed '/line_pattern/s/find/replace/' filename
5. 線のパターンに一致する行を削除します:
# sed '/line_pattern/d' filename
6. ファイルの最初の 11 行を印刷します。
# sed 11q filename
7. ファイルに複数の検索置換式を適用する:
# sed -e 's/find/replace/' -e 's/find/replace/' filename
8. 区切り文字 `/` を、検索または置換パターンで使用されていない他の文字に置き換えます。 `#`:
# sed 's#find#replace#' filename