Ниже я пытаюсь обновить / изменить содержимое $1
в f2
, если есть совпадения в $2
из f2
и $1
из f1
. Если совпадений нет, строка печатается как f2
. Ниже приводятся две запятые, но значение $1
остается неизменным. Спасибо:).
awk 'FNR==NR { a[$1]=$2; next } { if(a[$2]){$1=a[$2] }; print }' OFS=","
gawk '{
if(NR==FNR){
a[$1]=$2;
next
}
if($2 in a){
$1=a[$2];
print $0
}
else {
print $0
}
}' OFS="," f1 f2
f1 tab-delimited
file1 header
xxxx:7230 aaa11
xxxx:7231 yyyyy
xxxx:25478 zzzz
f2 comma-delimited
header1
header2
aaa11c,xxxx:7230,111,x1 111,yes
yyyyy,xxxx:7325,222,x2 222,
zzzz,xxxx:7329,222,x3 333,
желаемый
header1
header2
aaa11,xxxx:7230,111,x1 111,yes
yyyyy,xxxx:7325,222,x2 222,
zzzz,xxxx:7329,222,x3 333,