UbuntuのBashのgrepで1桁か2桁の数字を検索する方法

こんにちは、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]\)' ファイル名

丸カッコとパイプの前にはバックスラッシュをつけてエスケープ処理をし、角カッコの前にはバックスラッシュはつけないのがポイント。

以上です。

LinuxやUbuntuをこれから試してみたい!と言う人や、今までWindowsで使っていたPCをWindowsは残したままLinuxやUbuntuを活用してみたい人は以下の本がおすすめ!
https://amzn.to/3Vl1oNx

LinuxやUbuntuを使おうとして、初心者の人が最初に「?」となりやすいのがコマンドでしょう。使い方がわかればこれほど簡単で便利なものはありませんが、最初は戸惑うのが普通です。そんな初心者に向けてマンガで超わかりやすいコマンドについて学べるのはシス管系女子みんとちゃんの本!
https://amzn.to/3FMTx5v

シェアする

  • このエントリーをはてなブックマークに追加

フォローする