2017-08-01 8 views
0

以下の情報が含まれているファイルの行を数える必要があります。unixコマンドを切断して、詳細情報を抽出するgrep

  1. 最初の2つの文字は21
  2. する必要は第54回の文字が0または6
  3. 57-58文字にする必要があり、私はこの中に必要な49

、その後も大きくする必要があります可能であれば単一のコマンド。 は、私は次のことを試してみました:

1-2,54 $ファイル名-cカット| grepを-e 210 -e 216

これが私の最初の2つの条件を与えます。 3番目の条件をどのようにして一致させるかわかりません。 私はこのような何かを行う場合は、次の

1-2,54,57-58 $ファイル名-cカット| grepを-e 210 -e 216

それから私はまた22160そのような何かを得ます一致しないパターンに一致します。

どうすればこの問題を解決できますか?

+0

です。 –

答えて

0

あなたの目標はawkです。

awk '(substr($0,1,2)==21 && (substr($0,54,1)==0 || substr($0,54,1)==6) && substr($0,57,2)>49){count=count+1} END{print count==""?0:count}' Your_file 

簡単な説明、

substr($0,s,l)sから$0開始の部分文字列を抽出し、その長さは、いくつかのサンプルデータを投稿してくださいl

関連する問題