РЕДАКТИРОВАТЬ: ОП задает 2-й вопрос о 2 файлах, поэтому добавим его тоже сейчас.
awk 'FNR==NR{a[$1,$2]=$NF;next} {print $1,$2,a[$1,$2]?a[$1,$2]:$NF}' tempb_a2.dat b.dat > out.dat
Согласно вашему комментарию, вам нужно изменить те последние поля, значения которых либо NaN
, либо больше -2000
, если это так, то следующее может помочь вам.
awk '$NF=="NaN" || $NF>-2000{$NF=100000} 1' t.dat
Пояснение:
$NF=="NaN" || $NF>-2000
: здесь проверяется условие, если последнее поле ($ NF) имеет строку NaN
или больше -2000
, затем выполните следующее.
$NF=100000
: присвоение значения последнего поля 100000
для текущей строки.
1
: упоминая здесь 1
, awk
работает с методом condition
, а затем action
, поэтому, упомянув 1
, поставьте условие ИСТИНА и не упомянув о каком-либо действии, так что по умолчанию произойдет печать текущей строки .
Input_file
: здесь упоминается имя файла Input_file, через которое нам нужно перейти к awk
.