我想合并这些 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
您应该使用[[:upper:]]
匹配大写字母,因为[A-Z]
仅适用于 C 语言环境。