generated at
sedコマンド
置換とかができる
gnu-sedを使う

標準入力を受け取って、標準出力する
$ sed -e s/aaa/bbb/ input.txt > output.txt
良い感じにリダイレクトするなりなんなりすればいい
ファイルを指定した場合は、1行1行に対して <command> が適用される

manと大体同じ




仕様的なものも興味あるが、まとめかたとしてはsed 慣用表現まとめみたいなのがあったほうが引きやすい気がしてきたmrsekutmrsekut
(無限にありすぎて)まとめるのダルいので、実際に使ったら随時↑に追記みたいなのでもいいかもしれない


-e <command>
<command> 操作を適用する
commandには以下の3種類ある
殆どの場合これを使う
ここで指定する正規表現はBRE
<command> が1つしかない場合は、 -e は省略可
e.g. $ sed "s/aaa/bbb/"
単純な正規表現の場合はquotationなくても動くが、orとか使うようになると動かなくなるので、quotationつける癖を付けたほうが良いかもしれないmrsekut
複数指定できる
ex.shell
$ echo XXaaaX | sed -e "s/aaa//" -e s/X/B/g BBB
regexp/afterは変数を使ってもいい
ex.shell
$ REGEXP=aaa $ AFTER=bbb $ echo aaa | sed -e "s/$REGEXP/$AFTER/" bbb
-e の直後はcommandなので、
$ sed -e -n <command> みたいな書き方はしてはいけない
$ sed -n -e <command> $ sed -e <command> -n とすればいい
置換など
行削除など


-E
正規表現にEREを使える
例えばorを書く時に | のescpaseが不要
ex.shell
$ echo aaa | sed -e "s/a\|b/O/g" # BRE `\|`と書かないといけない OOO $ echo aaa | sed -E "s/a|b/O/g" # ERE OOO
-a
-f
-i
-l
-n
sedのsコマンドのflug p flugと組み合わせて使うことが多い
ex.shell
$ sed -n -e "s/aaa/bbb/p" input.txt
sedのsコマンドに依る置換を行って、置換が行われた行のみを出力する



ちゃんと読んでないけどまとまってそう
sed & awkプログラミング 改訂版というオライリーの本がある
man見たら本が出るのも理解できるわ〜、という具合の沼だった