- 締切済み
grepで40~70の数字をリストアップするコマンドを教えてください。
grepで40~70の数字をリストアップするコマンドを教えてください。 1 2 3 4 5 ・ ・ ・ のように1~100まで改行して数字が書かれているテキストファイルがあります。 40 41 42 ・ ・ ・ 70 という様にgrepコマンドなどで40~70までを数字をリストアップするコマンドはないでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- entree
- ベストアンサー率55% (405/735)
回答No.3
grep '^\([4-6][0-9]\|70\)$' もし、sed を使う場合はこんな書き方もあります。 sed -ne '/^40$/,/^70$/p' (40にマッチしたところから70にマッチしたところまでを出力)
- kmee
- ベストアンサー率55% (1857/3366)
回答No.2
数として考えず、文字として考えたら、 40~70は「4から6までの文字のあとに0から9までの文字」であるか「7のあとに0」であるか、です。 これを、grep流の正規表現であらわせば [4-6][0-9]\|70 実際のコマンドラインでは、特殊文字をシェルで解釈しないようにシングルクォートとで括って grep '[4-6][0-9]\|70' です。 ただし、これはご質問にあったテキストファイル以外では正解ではないでしょう。 例えば、200までのテキストだったら、140とかにもマッチします
- D-Matsu
- ベストアンサー率45% (1080/2394)
回答No.1
数字しかかかれていないなら、検索パターンに ([4-6][0-9]|70) と指定してやれば大丈夫じゃないかと……