2

Предположим, у меня есть два файла, которые выглядят так:

Файл 1:

1 x
2 y
3 z
5 l

Файл 2:

1 a
2 b
4 c
5 c

И я хочу присоединиться к ним, используя первый столбец в качестве ключа, чтобы дать

1 x a
2 y b
3 z
4 c
5 l c

где пропущенная строка в одном файле просто означает, что я опускаю его данные. Я думал, что join поможет, но похоже, что оно пропускает любую строку, которая не появляется в обоих файлах, и я не могу найти вариант, чтобы заставить это сделать иначе. По крайней мере , -e не работает так, как я думал , что это будет. Как правильно это сделать из командной строки?

1 ответ1

3

Это возможно с помощью команды join с использованием опции -a (дважды, один раз для каждого номера файла). Пример:

join -a1 -a2 1.txt 2.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .