检查第1列中的值1和第4列中的值4,然后打印整行,bash

检查第1列中的值1和第4列中的值4,然后打印整行,bash,bash,awk,find,Bash,Awk,Find,我有一个data.txt文件 1 2 3 4 5 6 7 cat data.txt 1 10 100 1100 10.0000 10.1122 60.0000 60.1111 2 11 110 1110 10.1122 10.3333 60.1111 61.3333 3 12 120 1120 10.3333 11.0547 61.3333 61.9999 4 13 130 1130 11.0547 11.1

我有一个
data.txt
文件

    1   2    3     4       5       6       7
    cat data.txt
1   10 100 1100 10.0000 10.1122 60.0000 60.1111 
2   11 110 1110 10.1122 10.3333 60.1111 61.3333
3   12 120 1120 10.3333 11.0547 61.3333 61.9999
4   13 130 1130 11.0547 11.1111 61.9999 62.4444
5   14 140 1140 11.1111 10.1122 62.4444 62.8888
6   15 150 1150 10.1122 10.3333 61.3333 61.9999 
7   16 160 1160 10.3333 11.1111 60.1111 61.3333
8   17 170 1170 11.0547 11.5555 61.3333 64.1111
9   18 180 1180 10.3333 11.1111 61.3333 61.3333
10  19 190 1190 11.0547 11.5555 60.1111 64.1111
11  20 200 1200 11.1111 10.1122 62.4444 62.8888
我想找到从
第4列中的
10.1122
11.1111
的顺序查找所有值。以及从
第6列中的
60.1111
61.9999
的顺序值

“anubhava”和“kent”建议(谢谢!)使用

awk-v col=4-v start=10.1122-v end=11.1111'$col>=start&&$col=start&&$col此行应执行以下操作:

awk -v f4=10.1122 -v t4=11.1111 -v f6=60.1111 -v t6=61.9999 
      '$4>=f4&&$4<=t4&&$6>=f6&&$6<=t6' file
请注意,根据您定义的条件:以
12和13开头的行也应该在输出中


此外,行号由您添加,但不在文件中,对吗?否则,第4列将是第5列。。。所以我删除了第一行的数字列。

你的问题太令人困惑了。请编辑使其更明显。为什么第3行第4行。。。不在结果中?因为
第3行
第9行
是相同的。它应该只打印一个
col4:10.3333&&col6:61.3333
行4
col4:11.0547&&col6:61.9999
我只想要两个col的第二个最后一个值,4和6。谢谢Kent。它起作用了!我编辑了部分
'$4>=f4&&$4=f6&&$6
   1  60.1111 
   2  61.3333
   3  61.9999
col4: 10.1122 && col6: 60.1111
col4: 10.3333 && col6: 60.1111
col4: 11.0547 && col6: 60.1111
col4: 10.1122 && col6: 61.3333
col4: 10.3333 && col6: 61.3333
col4: 11.0547 && col6: 61.3333
2   11 110 1110 10.1122 10.3333 60.1111 61.3333
6   15 150 1150 10.1122 10.3333 61.3333 61.9999 
7   16 160 1160 10.3333 11.1111 60.1111 61.3333
8   17 170 1170 11.0547 11.5555 61.3333 64.1111
9   18 180 1180 10.3333 11.1111 61.3333 61.3333
10  19 190 1190 11.0547 11.5555 60.1111 64.1111
awk -v f4=10.1122 -v t4=11.1111 -v f6=60.1111 -v t6=61.9999 
      '$4>=f4&&$4<=t4&&$6>=f6&&$6<=t6' file
11 110 1110 10.1122 10.3333 60.1111 61.3333
12 120 1120 10.3333 11.0547 61.3333 61.9999
13 130 1130 11.0547 11.1111 61.9999 62.4444
15 150 1150 10.1122 10.3333 61.3333 61.9999 
16 160 1160 10.3333 11.1111 60.1111 61.3333
17 170 1170 11.0547 11.5555 61.3333 64.1111
18 180 1180 10.3333 11.1111 61.3333 61.3333
19 190 1190 11.0547 11.5555 60.1111 64.1111