Слияние/Объединение 2 текстовых файлов согласно числовому полю

Когда Вы выходите :w !wc -w, энергия создает временный файл и затем передает тот файл по каналу к команде после !, или скорее это помещает Ваши данные во временный файл и просит, чтобы Ваша оболочка выполнила команду, которая смотрит что-то как следующее:

 (wc -w) < /tmp/vHhjUPf/2

Где та последняя часть является некоторой случайной папкой/именем файла, в которой энергия хранит Ваши данные. Одна интересная вещь отметить, эта команда перестанет работать в несовместимых оболочках как рыба. Это вызвано тем, что рыба использует (cmd) синтаксис для замены команды вместо ее традиционного использования.

5
26.09.2015, 18:12
2 ответа

С : :

$ awk 'BEGIN{FS=OFS="|"}NR==FNR{a[$1]=$0;next}{$1=a[$1]}1' file_1 file_2
14595|Age 35|Salary xx|Position ax|2013|Info 1|Info 2|Info 3|Info 4|Info 5|Address xx|Info 6|Info 7|Info 8
14649|Age 30|Salary xx|Position az|2015|Info 1|Info 2|Info 3|Info 4|Info 5|Address xxxz|Info 6|Info 7|Info 8
1
27.01.2020, 20:41

Используйте join:

$ join -t'|' file_1 file_2
14595|Age 35|Salary xx|Position ax|2013|Info 1|Info 2|Info 3|Info 4|Info 5|Address xx|Info 6|Info 7|Info 8
14649|Age 30|Salary xx|Position az|2015|Info 1|Info 2|Info 3|Info 4|Info 5|Address xxxz|Info 6|Info 7|Info 8

-t указывает разделитель полей.

Для того, чтобы соединить работы, файлы должны быть отсортированы. Для этого можно использовать сортировку.

2
27.01.2020, 20:41

Теги

Похожие вопросы