sedコマンド
置換とかができる
標準入力を受け取って、標準出力する
$ sed -e s/aaa/bbb/ input.txt > output.txt
良い感じにリダイレクトするなりなんなりすればいい
ファイルを指定した場合は、1行1行に対して<command>が適用される
manと大体同じ
仕様的なものも興味あるが、まとめかたとしてはsed 慣用表現まとめみたいなのがあったほうが引きやすい気がしてきたmrsekut.icon*2 (無限にありすぎて)まとめるのダルいので、実際に使ったら随時↑に追記みたいなのでもいいかもしれない
-e <command>
<command>操作を適用する
commandには以下の3種類ある
殆どの場合これを使う
<command>が1つしかない場合は、-eは省略可
e.g. $ sed "s/aaa/bbb/"
単純な正規表現の場合はquotationなくても動くが、orとか使うようになると動かなくなるので、quotationつける癖を付けたほうが良いかもしれないmrsekut.icon
複数指定できる
code:ex.shell
$ echo XXaaaX | sed -e "s/aaa//" -e s/X/B/g
BBB
regexp/afterは変数を使ってもいい
code: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
例えばorを書く時に|のescpaseが不要
code: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
code:ex.shell
$ sed -n -e "s/aaa/bbb/p" input.txt
ちゃんと読んでないけどまとまってそう
man見たら本が出るのも理解できるわ〜、という具合の沼だった