Не могли бы вы помочь мне с нижеследующим требованием?
У меня есть два файла FILE1 и FILE2 со следующим содержанием (пример):
FILE1:
Column1 Column2
------------------------
M 1.2
A 11
S hostname
T TCP
E 120
R Y
FILE2:
Column1 Column2
---------------------------
A 12
M 1.3
T SSL
S hostname1
Порядок полей в FILE1 и FILE2 различаются, я хочу сравнить FILE1 и FILE2, взять 1-й столбец из FILE1 и выполнить поиск по всему столбцу 1 FILE2, и как только он найдет совпадение, он должен выбрать значение столбца 2 (из FILE2) и заменить значение в соответствующем поле в FILE1.
Благодарю, если кто-то может помочь в моем требовании.
Вы можете сделать что-то вроде:
$ join -o 0,1.2,2.2 -a 1 <(sort -k 1,1 FILE1) <(sort -k 1,1 FILE2) |
awk '{print $1, $NF}'
A 12
E 120
M 1.3
R Y
S hostname1
T SSL
Или сохранить порядок строк в FILE1
:
$ awk '!n {a[$1] = $2; next}
{print $1, $1 in a ? a[$1] : $2}' FILE2 n=1 FILE1
M 1.3
A 12
S hostname1
T SSL
E 120
R Y