awk 文の結合

awk 文の結合

私は次のawkステートメントを結合したいと思います:

awk -F'\t' 'NF>1 && $NF!=""' #prints every row with more than two fields 
awk '$1 ~ /^[0-9]/'        #prints every row starting with a number 
awk -F'\t' 'NF==1'           #prints every row with one only field
awk '$1 ~ /^[A-Z]/'        #prints every row starting with a capital letter 

ステートメントを取得するには、大文字で始まり、1つのフィールドのみを含むすべての行と2つ以上のフィールドがあり、それぞれ整数で始まるすべての行を印刷します。

入力例:

NAME_1
1   
11  11
key 11
KEY KEY

予想出力:

NAME_1
11  11

答え1

awkロジックを使用して&&それらを組み合わせることができます||(続きを読むawk ブール演算子):

$ awk '(NF > 1 && $1 ~ /^[0-9]/) || (NF == 1 && $1 ~ /^[[:upper:]]/)' file
NAME_1
11  11

Cロケールでのみ機能するため、[[:upper:]]大文字の一致を使用する必要があります。[A-Z]

関連情報