Bash AWK打印如果发现三个匹配项,一个为假

Bash AWK打印如果发现三个匹配项,一个为假,bash,awk,sed,grep,Bash,Awk,Sed,Grep,文件中有几行类似于: A B C H A B C D 并且,我要打印包含以下内容的所有行: /A\tB/ 但是,如果第四个字段中的行包含和H,则不打印,输出为: A B C D 它可以用sed、awk或grep写成一行 我只知道: awk '/^A\tB/' 用这个 awk '/^A\tB/ { if ( $4 != "H" ) print }' 用这个 awk '/^A\tB/ { if ( $4 != "H" ) print }' 对于awk单

文件中有几行类似于:

A   B   C   H
A   B   C   D
并且,我要打印包含以下内容的所有行:

/A\tB/
但是,如果第四个字段中的行包含和H,则不打印,输出为:

A   B   C   D
它可以用sed、awk或grep写成一行

我只知道:

awk '/^A\tB/'
用这个

awk '/^A\tB/ { if ( $4 != "H" ) print }'
用这个

awk '/^A\tB/ { if ( $4 != "H" ) print }'
对于awk单衬套:

awk -F'\t' '$1=="A" && $2=="B" && $4!="H"' file
-F'\t'-tab char\t被视为字段分隔符 输出:

A   B   C   D
对于awk单衬套:

awk -F'\t' '$1=="A" && $2=="B" && $4!="H"' file
-F'\t'-tab char\t被视为字段分隔符 输出:

A   B   C   D
这将有助于:

awk '$1$2 == "AB" && $4 != "H"' file
如果所有条目都是单个字符,则也可以:

awk '$1$2$3$4 ~ /^AB.[^H]/' file
这将有助于:

awk '$1$2 == "AB" && $4 != "H"' file
如果所有条目都是单个字符,则也可以:

awk '$1$2$3$4 ~ /^AB.[^H]/' file

这可能适用于GNU sed:

sed  '/^A\tB\t.\t[^H]/!d' file
如果一行不包含a、B、任何字符和除H以外的由制表符分隔的字符,请将其删除

可以这样写:

 sed  -n '/^A\tB\t.\t[^H]/p' file

这可能适用于GNU sed:

sed  '/^A\tB\t.\t[^H]/!d' file
如果一行不包含a、B、任何字符和除H以外的由制表符分隔的字符,请将其删除

可以这样写:

 sed  -n '/^A\tB\t.\t[^H]/p' file

输入错误,'应该在最后一个之后}。。。可以简化第二列awk'/^A\tB\t/&&$4!=H'@Sundeep好的。谢谢你,'应该在最后一次之后。}。。。可以简化第二列awk'/^A\tB\t/&&$4!=好的,谢谢