🐙

sedでマッチしない時の改行の扱い(BSDとGNUの違い)

2021/05/23に公開

小ネタです。末尾に改行が無いファイルに対しsedする時、GNUのsedとBSD(mac)sedで挙動が違います。

元データ

$ echo -n hoge > hoge
# 改行が無いので0行
$ wc -l hoge
0 hoge

BSD(mac組み込みのsed)

改行が追加されます。

sed 's/buzz/foo/' hoge  | wc -l
1

GNU

改行が追加されません。

gsed 's/buzz/foo/' hoge  | wc -l                                           
0

Discussion