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 

명령문을 얻으려면 대문자로 시작하고 하나의 필드만 포함하는 모든 줄과 두 개 이상의 필드가 있고 각각 정수로 시작하는 모든 줄을 인쇄하십시오.

입력 예:

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]

관련 정보