4つの列があり、3番目の列にはAGという文字が含まれています。列が空でない場合、またはAGが含まれている場合にのみ行を出力したいと思います。これが私の現在のコードです。圧縮ファイルから読み込みます。
bzcat $file | cut -d, -f3,4,20,21 |grep -E '[A-G]'|head -100
答え1
あなたの質問は少し混乱しています。しかし、awk
あなたが探しているものが何であるかを理解している場合は、次のことを試してください。
awk 'BEGIN{FS=","}$3~/[A-G]+/{print}'
FS=
フィールド区切り記号を定義します。熱を区別するものは何ですか?$3
3番目のフィールドです。柱。~/[A-G]+/
awk
文字AGとのみ一致する正規表現を示します。
awk
ライン指向ストリームエディタ。たとえば、入力ストリームを通過します。そして、bzcat $file |
各行の3番目の「フィールド」を調べて、一致する正規表現があるかどうかを確認します。その場合、中かっこ内のコマンドのリストが実行されます。この場合、基本的に内容全体を印刷する単純な印刷ステートメントです。ライン。
awk
素晴らしい、非常に強力で機能豊富なプログラムなので、少なくとも基本は学ぶ価値があります。man
詳しくは該当ページをご確認ください。