Grep正規表現の使い方

Grep正規表現の使い方

こんにちは。5桁の郵便番号が記載されたファイルがあります。

grepを使用して、9から始まる郵便番号を印刷しようとしていますが、4〜7の数字のみを含めることができます。

私が使用しているコマンドは

grep '[4-7], 9'$ zipcodesDataEntry.cvs

問題は、1 2 3 8 の数字を含む郵便番号を取得していることです。出力は次のようになります。

95544
94554
94445
95567

ただし、次のような郵便番号も表示されます:

91121
92231 

9以外の4~7の範囲の数字を除外しようとしています

答え1

次の入力ファイルがあるとします:

cat zipcodes 
95544 94554 94445 92231 95567 91121

この grep を使用できます:

egrep -o '9[4-7]{4}' zipcodes 
95544
94554
94445
95567

答え2

入力ファイルの内容:

95544 
94554 
94445 
95567
91121 
92231

awk(egrep利用できない場合は)を使用して、次のようなことを試すことができます。

awk '/9[4-7]{4}/' zip.txt

出力:

95544 
94554 
94445 
95567

答え3

grep '^9.[4-7].*' zipcodesDataEntry.cvs

  1. ^ 比較する文字列の先頭
  2. . (ピリオド) 任意の文字に一致
  3. アスタリスク、0個以上

関連情報