Только для дополнения ответов, которые были уже отправлены к настоящему времени.
Существует также /dev/shm
на некоторых дистрибутивах Linux, которые могут быть использованием для временного хранения. Это устройство хранения данных должно только использоваться, когда выполнение файлового ввода-вывода является данным критическим фактором /dev/shm
использует tmpfs
файловая система. Также это должно использоваться для довольно размерных файлов и данных. tmpfs
файловая система использует системную RAM как устройство хранения данных, таким образом, это не является персистентным от начальной загрузки до начальной загрузки.
Существует хороший обзор всего выбора, упомянутого здесь на StackOverflow также в этом названные Вопросы и ответы:/tmp по сравнению с/dev/shm для временного хранилища файлов на Linux?. Это покрыто хорошо в этом SuperUser названные Вопросы и ответы: Когда я должен использовать/dev/shm/и когда я должен использовать/tmp?.
Вы можете использовать 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
Для этого можно использовать join
:
join -a 1 file1 file2
join
объединяет файлы, основанные на общем поле. По умолчанию это первое поле обоих файлов. -a 1
означает включение строк из первого файла, когда не было пары. Для пикировки полей, отличных от первого, используйте -1 N -2 M
, чтобы пикировать поле N из file1
и M из file2
.