У меня небольшая проблема при попытке использовать awk для замены некоторых строк в столбце, используя другой файл в качестве ссылки для замены. Я хочу, чтобы строки в третьем столбце моего File2 были заменены строками во втором столбце File1, когда они соответствуют строке первого столбца File1.
Вот файлы и желаемый результат для будьте более ясными.
File1
AAA XZA
AAB XSZ
AAC XWQ
BAA XCD
File2
ADZ-4 128720 AAA 451351351 5135 jhgt 215
SZQ-2 036051 AAB 55654 grt
KFD-9 036266 AAC
ODS-10 036267 AAA 57321
POS-11 036268 AAC 8435435 764 frd
желаемый результат:
ADZ-4 128720 XZA 451351351 5135 jhgt 215
SZQ-2 036051 XSZ 55654 grt
KFD-9 036266 XWQ
ODS-10 036267 XZA 57321
POS-11 036268 XWQ 8435435 764 frd
Я пробовал следующую командную строку.
awk 'FNR==NR{a[$1]=$2;next} {if ($3 in a){$3=a[1]}; print $0}' File1 File2
но я почти уверен, что делаю что-то неправильно во втором фигурном тормозе, так как он распечатывает файл с удаленным третьим столбцом. Если бы у меня было всего несколько, я бы с радостью использовал sed, у меня есть 500+ замен ...
Любая помощь будет оценена, и если вы можете объяснить, чтобы я мог извлечь уроки из своей ошибки, я был бы безмерно благодарен.