LINUX.ORG.RU

История изменений

Исправление berrywizard, (текущая версия) :

awk -v name1=file1.txt -v name2=file2.txt '
BEGIN { split("", map1);  split("", map2); }
FILENAME == name1 { map1[$0] = $2; next; }
FILENAME == name2 { map2[$1] = $2; next; }
END { for (l in map1) print l, map2[map1[l]]; }
' file1.txt file2.txt

Если есть возможность отсортировать (а я так понял, что есть), то проще, конечно, join’ом.

Исправление berrywizard, :

awk -v name1=file1.txt -v name2=file2.txt '
BEGIN { split("", map1);  split("", map2); }
FILENAME == name1 { map1[$0] = $2; next; }
FILENAME == name2 { map2[$1] = $2; next; }
END { for (l in map1) print l, map2[map1[l]]; }
' file1.txt file2.txt

Исходная версия berrywizard, :

awk -v name1=file1.txt -b name2=file2.txt '
BEGIN { split("", map1);  split("", map2); }
FILENAME == name1 { map1[$0] = $2; next; }
FILENAME == name2 { map2[$1] = $2; next; }
END { for (l in map1) print l, map2[map1[l]]; }
' file1.txt file2.txt