MacOSのバージョン概要
thatisgraffiti
Graffiti-Life
sedコマンドを利用する傍ら、そもそも変換コマンドだったっけ?と疑問に抱き、今回は勉強してみます。
sedコマンドは「stream editor(ストリームエディタ)」の略で、テキストファイルや標準入力からのデータを、指定したルールに基づいて自動的に編集・加工するための強力なテキスト処理ユーティリティです。主にテキストの検索・置換・挿入・削除などの操作を自動化するために広く利用されているそうです。
sed [オプション] 'スクリプト' [ファイル名]
-i
オプションでファイルを直接編集可能(バックアップも作成可)。ファイル内の「oldstring」を「newstring」にすべて置換する例です。
sed 's/oldstring/newstring/g' file.txt
s
はsubstitute(置換)の意味g
はglobal(行内すべて)を指定パターン一致行の削除
sed '/pattern_to_delete/d' file.txt
2行目の削除
sed '2d' file.txt
加工結果を新しいファイルに保存
sed 's/old/new/g' oldfile.txt > newfile.txt
sed '3i\This is the inserted text.' file.txt
sed '$a\This is the appended text.' file.txt
特定パターンに一致する行を新しいテキストで置換
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環境でのテキスト処理を効率化するための必須ツールです。
検索・置換だけでなく、行の削除や挿入、スクリプトによる複雑な編集も自動化できるため、日々の作業やシェルスクリプト作成に非常に役立くはずです。