MacではSedの挙動がLinuxとかとは違ったのでメモ。
やりたいこと
下記のようなCSVがあったとき、
test.csv
01,aaa
02,bbb
03,ccc
下記のように、1行目にカラム行を追加したい。
test.csv
no,name
01,aaa
02,bbb
03,ccc
通常、エディタで開いて追加すればいいだけの話ですが、ファイルが1億行とかの場合、開くのだけでも大変なので、sedで追加したい。
やりかた
本当は・・・
sed -i '' '1s/^/no,name\n/' test.csv
のようにしたい(linuxではできる)。がMacだと期待通り動かない。どうやらBSD系, Linux系の差らしい。
Macでは
sed -i '' '1s/^/no,name\
/' test.csv
のように、実際に改行したコマンドを実行する(nは消す)。
なんかダサイけどとりあえず。
確認
先頭行を見たい場合、lessコマンドを使うのが結局一番よいらしい。