У меня есть файл 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