要注意 grep
コマンドライン上で気軽に使うには問題ないが,シェルスクリプト内で使用する時は要注意.(考えてみれば,シェルスクリプト内で grep を使用することがほとんどなくなってきた…)
典型的な問題
$ cat DATA
LINE1
LINE2
LINE3
DATA というファイルの内容に LINE2 という内容が含まれていたらある「処理」を行うという動作をするプログラムは,以下のように書くことはできる.
grep -q LINE2 DATA && <処理>
が,DATA が以下のような内容になっても,「処理」が走ってしまう.(これはほとんどの場合,そうなっては欲しくないだろう)
$ cat DATA
LINE1
LINE8
LINE16
LINE24
LINE32
データによってプログラムの挙動が意図しないものになってしまう典型となるので,grep は便利だがここでは使うべきではない.