打印文件中不以哈希开头的所有行,并按特定列进行筛选



我有一个制表符分隔的文件,标题行以#开头。我想修剪所有标题行以及列#2不以0/0开头的行。

我的第一个逻辑(删除标题行(是正确的,但是当我添加第二个逻辑(我不确定这是否是正确的方法(时AND什么都没有返回。

awk -F$'t' '/^[^#]/ && $2 !~ /^0\/0/ {print;}' test.txt

输入文件

#meta1
#meta2
10  0/2:1/2
10  0/0:5/5
10  2/6:0/0

输出文件

10  0/2:1/2
10  2/6:0/0

编辑: 由于 OP 更改了Input_file因此也根据 Ed 先生在评论中的建议添加解决方案。

awk '!(/^#/ || $2~/^0/0/)'  Input_file

您能否尝试以下操作。

awk '!/^#meta/ && $2!="0/0"'  Input_file

awk '!/^#/ && $2!="0/0"'  Input_file

awk '!(/^#/ || $2=="0/0")'  Input_file

设置BEGIN{FS=OFS="t"}以防您的Input_file是 TAB 分隔的OFS并且您也需要输出为tTAB。

最新更新