こんにちは、minoruです。
Ubuntuのbashでgrep検索する時に、1桁もしくは2桁の数字に一致するものを検出したい場合にはどう書けば良いか?例えば1から18までの数値を探したい場合はどう書けば良いか?
grep '[1-9]\|1[0-8]' ファイル名
1から18までの数値の後ろにハイフンがついているものを探すにはどうしたら良いか?一例としては以下のようなやり方がある。
grep '[0-9]\+-[0-9]\+-[0-9]\+' ファイル名
ただし、この場合は99-1-50のような1~18と言う条件以外でも一致してしまう。1~18と言う条件を厳密に守るには以下のようにする必要がある。
grep '\([1-9]\|1[0-8]\)-\([1-9]\|1[0-8]\)-\([1-9]\|1[0-8]\)' ファイル名
丸カッコとパイプの前にはバックスラッシュをつけてエスケープ処理をし、角カッコの前にはバックスラッシュはつけないのがポイント。
以上です。