egrep -o
- GNUの egrep -o はマッチした文字列を出力した後, その文字列を入力文字列から取り除き, 新な行頭にしてしまうバグを持つバージョンがある.
- echo 'AB'| egrep -o '^(A|B)'の出力は2行あり, 以下になる. 'B'は行頭ではないが, 'A'を出力した時点で'AB'から'A'が取り除かれるため, 行頭の'B'にマッチしている.
A B
- echo 'ABAABB' | egrep -o '^(A|B)'は
A B A A B B
- echo 'ABACABB' | egrep -o '^(A|B)'は途中の'C'で食い止められるため,以下の三行.
A B A
- RHEL6系のgrep 2.6.3はどれも'A'しか出力されない.
- 参照