Uncategorized

sedコマンド

thatisgraffiti

sedコマンドを利用する傍ら、そもそも変換コマンドだったっけ?と疑問に抱き、今回は勉強してみます。
sedコマンドは「stream editor(ストリームエディタ)」の略で、テキストファイルや標準入力からのデータを、指定したルールに基づいて自動的に編集・加工するための強力なテキスト処理ユーティリティです。主にテキストの検索・置換・挿入・削除などの操作を自動化するために広く利用されているそうです。

sedコマンドの基本構文

sed [オプション] 'スクリプト' [ファイル名]
  • [オプション]: 動作をカスタマイズするためのもの
  • ‘スクリプト’: sedに実行させたい命令(例:検索・置換など)
  • [ファイル名]: 処理対象のテキストファイル

主な用途と特徴

  • 検索と置換
    正規表現を使ってパターンに一致する文字列を検索し、別の文字列に置換できます。
  • 行の削除・抽出
    パターンや行番号を指定して、特定の行を削除したり抽出したりできます。
  • インプレース編集
    -iオプションでファイルを直接編集可能(バックアップも作成可)。
  • スクリプトファイルの実行
    複数のsedコマンドをスクリプトファイルにまとめて一括実行できます。
  • パイプラインとの連携
    他のコマンドと組み合わせて、標準入力・出力を活用した柔軟な処理が可能です35

よく使うsedコマンド例

1. 文字列の検索と置換

ファイル内の「oldstring」を「newstring」にすべて置換する例です。

sed 's/oldstring/newstring/g' file.txt
  • sはsubstitute(置換)の意味
  • gはglobal(行内すべて)を指定

2. 特定の行の削除

パターン一致行の削除

sed '/pattern_to_delete/d' file.txt

2行目の削除

sed '2d' file.txt

3. テキストの抽出・新規ファイル作成

加工結果を新しいファイルに保存

sed 's/old/new/g' oldfile.txt > newfile.txt

4. 行の挿入・追加

  • 3行目にテキスト挿入
sed '3i\This is the inserted text.' file.txt
  • ファイル末尾に追加
sed '$a\This is the appended text.' file.txt

5. 行全体の置換

特定パターンに一致する行を新しいテキストで置換

sed '/pattern_to_match/c\New line of text' file.txt

主なオプション

オプション説明
-e複数のコマンドを順に実行
-iファイルを直接編集(インプレース編集)
-n出力を抑制し、pコマンドで指定した行のみ出力

例:

sed -i 's/old/new/g' filename
sed -n 'p' filename

まとめ

sedコマンドは、LinuxやUnix環境でのテキスト処理を効率化するための必須ツールです。
検索・置換だけでなく、行の削除や挿入、スクリプトによる複雑な編集も自動化できるため、日々の作業やシェルスクリプト作成に非常に役立くはずです。

ABOUT ME
記事URLをコピーしました