簡體   English   中英

用awk打印出的行的值大於1

[英]Print out lines have value great than 1 with awk

我試圖從一行中的任何值大於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

您可以在awk中使用for循環,而不用編寫那么多的條件:

awk -F"\t" '{for(i=3; i<=18; i++){if($i>1){print $0; next;}}}' filename

如果希望與第3列到最后一列對應,請在循環條件中使用NF而不是18

awk -F'\t' '{f=0; for (i=3;i<=18;i++) if ($i>1) f=1} f' file1.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM