我试图在一个文件中提取数据,其中任何一行中的值都大于1.您是否知道有任何简单的方法可以做到这一点?
awk -F"\t" '{if(($3>1)||($4>1)||($5>1)||($6>1)||($7>1)||($8>1)||($9>1)||($10>1)||($11>1)||($12>1)||($13>1)||($14>1)||($15>1)||($16>1)||($17>1)||($18>1))print$0}' file1.txt > file2.txt
答案 0 :(得分:4)
你可以在awk中使用for
循环,而不是写出这么多条件:
awk -F"\t" '{for(i=3; i<=18; i++){if($i>1){print $0; next;}}}' filename
如果您希望与3
到最后一列的列进行合作,请在循环条件中使用NF
代替18
。
答案 1 :(得分:1)
awk -F'\t' '{f=0; for (i=3;i<=18;i++) if ($i>1) f=1} f' file1.txt