ฉันมีไฟล์ 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
ฉันต้องการค้นหาค่าทั้งหมดตามลำดับตั้งแต่ 10.1122
ใน column 4
ถึง 11.1111
และค่าตามลำดับตั้งแต่ 60.1111
ใน column 6
ถึง 61.9999
'anubhava' และ 'kent' แนะนำให้ใช้ (ขอบคุณ!)
awk -v col=4 -v start=10.1122 -v end=11.1111 '$col>=start && $col<=end{
print $col}' data.txt | sort -nu
1 10.1122
2 10.3333
3 11.0547
4 11.1111
awk -v col=6 -v start=60.1111 -v end=61.9999 '$col>=start && $col<=end{
print $col}' data.txt | sort -nu
1 60.1111
2 61.3333
3 61.9999
ฉันต้องการพิมพ์/บันทึกในไฟล์ results.txt ในบรรทัดที่อยู่
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 จะถูกเก็บไว้ใน array1 และ array2 เพื่อให้สามารถค้นหาบรรทัดที่มีค่า col4 และค่า col6 อยู่
ขอบคุณ.
line #3
และline #9
เหมือนกัน ควรพิมพ์หลักฐานเดียวเท่านั้นที่col4: 10.3333 && col6: 61.3333
Line #4
มีcol4: 11.0547 && col6: 61.9999
ฉันแค่ต้องการคู่จนถึงค่าสุดท้ายที่สองจากทั้งคอลัมน์ 4 และ 6 - person user3652962   schedule 25.05.2014