Замените общие ценности в двух файлах согласно первому столбцу

Только для дополнения ответов, которые были уже отправлены к настоящему времени.

Существует также /dev/shm на некоторых дистрибутивах Linux, которые могут быть использованием для временного хранения. Это устройство хранения данных должно только использоваться, когда выполнение файлового ввода-вывода является данным критическим фактором /dev/shm использует tmpfs файловая система. Также это должно использоваться для довольно размерных файлов и данных. tmpfs файловая система использует системную RAM как устройство хранения данных, таким образом, это не является персистентным от начальной загрузки до начальной загрузки.

Существует хороший обзор всего выбора, упомянутого здесь на StackOverflow также в этом названные Вопросы и ответы:/tmp по сравнению с/dev/shm для временного хранилища файлов на Linux?. Это покрыто хорошо в этом SuperUser названные Вопросы и ответы: Когда я должен использовать/dev/shm/и когда я должен использовать/tmp?.

Ссылки

5
24.06.2014, 02:39
2 ответа

Вы можете использовать join:

$ join -a 1 file1.txt file2.txt 
A
B asas 4
C
D addd 5

Если ваш файл не отсортирован:

join -a 1 <(sort 1.txt) <(sort 2.txt)

Но это приведет к потере формата. Вы можете использовать perl:

$ perl -anle ' $h{$F[0]} = $_;
    END { print for sort values %h }
' file1.txt file2.txt
5
27.01.2020, 20:33

Для этого можно использовать join :

join -a 1 file1 file2

join объединяет файлы, основанные на общем поле. По умолчанию это первое поле обоих файлов. -a 1 означает включение строк из первого файла, когда не было пары. Для пикировки полей, отличных от первого, используйте -1 N -2 M, чтобы пикировать поле N из file1 и M из file2.

.
9
27.01.2020, 20:33

Теги

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