To be a professional

プログラミング関係の情報

sedコマンドまとめ

動機

久しぶりにsedコマンドを使おうとしたのですが、忘れてました。 復習のため、infoコマンドで調べた内容を適当にまとめておきます。

sedとは

まずsedとはなんでしょうか? infoコマンドによると

'sed' is a stream editor.
A stream editor is used to perform basic text transformations on a input stream(a file or input from a pipeline).

とのことです。 つまり簡単に言うと、テキスト処理(特定の行を削除、置換など)ができるコマンドです。

使い方

infoコマンドをみると、下記のように記されています。

sed SCRIPT INPUTFILE

SCRIPTについては、下段を参照してください。

使いそうなオプション

-iオプション

sedはデフォルトだと、実行結果を標準出力に表示します。 実行結果をファイルに保存したい場合、- iを使用することができます。

-nオプション

sedはデフォルトでは、指定された入力をどのように処理したかを表示します。 -nオプションを使用すれば、表示されません。

-fオプション

ファイルから実行するコマンドを読み込む場合に使います。

--follow-symlinksオプション

-iオプションのみを使用した場合、symbolic linkの参照先ファイルを更新できません。
--follow-symlinksオプションを使用すれば、symbolic linkの参照先ファイルを更新できます。

-eオプション

実行するコマンドを追加します。

SCRIPT

sedのSCRIPT(s/hogehoge/foo/gとか)とは、下記の形式で表せるもののことです。

[addr]X[options]

[addr]は、オプションの行アドレス、Xsedコマンドを表します。 例えば下記だと、

sed '30, 35d'

30, d5が[addr]であり、dがsedコマンドです。

よく使いそうなsedコマンド

コマンド 内容
d 文字を削除します。
s/REGEXP/REPLACEMENT/[FLAGS] 指定した正規表現に一致する文字列を置換します。
y/src/dst/ srcで指定したいずれかの文字を、dstで対応する文字に変換します。

後書き

ざっとですが、sedコマンドを紹介しました。
info sedで書かれている内容はもっとありますが、あまりの量に心が折れたので、今回はここまでとしておきます。