Я пытаюсь сравнить столбцы в двух разных файлах (1-ый из proba2.dat
с 2 из proba1.dat
), бывшегоAWK копирования столбцов с несколькими условиями
proba1.dat
1 -3.56
2 -3.40
3 -3.12
4 -3.04
5 -3.11
6 -3.22
proba2.dat
-3.00 0.080
-3.05 0.084
-3.10 0.086
-3.15 0.097
-3.20 0.104
-3.25 0.160
-3.30 0.230
-3.35 0.340
-3.40 0.259
-3.45 0.123
-3.50 0.033
-3.55 0.030
-3.60 0.012
Если они совпадают внутри интервала 0,05, то я хочу, чтобы добавить 3-й столбец в proba1.dat
со значениями 2-го столбца из proba2.dat
, так что я получаю
proba3.dat
1 -3.56 0.030
2 -3.40 0.259
3 -3.12 0.086
4 -3.04 0.084
5 -3.11 0.086
6 -3.22 0.104
Я попытался с
awk 'FNR == NR { k[$2] = 1; next } { if (k[$1] <= 1+0.025 && k[$1] >= 1-0.025) { print $0 } }' \proba1.dat proba2.dat > proba3.dat
но печатает только значения, которые соответствуют точно
-3.40 0.259
, а также там нет первого столбца из proba1.dat
. Кто-нибудь есть идея, как это сделать?
Вам нужно совместить * каждую строку с 'proba2.dat' с * каждой * строкой от' proba1.dat'? Для этого вам понадобится цикл. Вы также захотите сохранить всю строку ввода в своем awk-скрипте под значением столбца (надеюсь, они уникальны), чтобы вы могли вернуть их. Возможно, имеет смысл сначала обработать второй файл. –
Да, ты прав. Я пропустил это. – user5694985