Предположим, что поле, в котором вы хотите объединить/объединить данные, отсортировано:
$ join -1 4 -o1.1,1.2,1.3,0,2.2 file1 file2
1 115258827 12 HG00099 0|0
1 115258827 5 HG00100 0|1
1 115258827 8 HG00101 0|0
1 115258827 6 HG00103 0|0
Это объединяет два файла в четвертом столбце file1
(, указанном с помощью -1 4
, так как это не первый столбец в этом файле )и первый столбецfile2
(это столбцы, которые нужны файлам для сортировки по ).
Флаг -o
указывает join
какие поля мы хотели бы видеть в выводе и из какого файла их брать(1.3
означает "третье поле из первого файла", например, а 0
означает поле соединения ).
Преимущество использования join
заключается в том, что ни один файл не нужно полностью считывать в память.
Если файлы не отсортированы, вы можете либо предварительно -отсортировать их раз и навсегда с помощью
sort -k4 -o file1 file1
sort -o file2 file2
или, если вы используете оболочку, которая понимает подстановку процессов, вы можете сортировать их одновременно с соединением, используя
join -1 4 -o1.1,1.2,1.3,0,2.2 <( sort -k4 file1 ) <( sort file2 )
Именно отсортированные данные позволяют join
одновременно хранить в памяти только несколько строк каждого файла.
16 ГБ подкачки в наши дни довольно смешны, потому что машина остановится и станет непригодной для использования задолго до того, как вы израсходуете около 16 ГБ подкачки.
Обычно я работаю без свопа на чем-то большем, чем рашпиль на каждом пи, на том основании, что я предпочитаю, чтобы машина работала быстро, чем медленно останавливалась.
Если некоторая подкачка действительно необходима, вы можете подумать о устройстве zram, занимающем около 50% вашей оперативной памяти, которое обычно сжимается до половины с помощью zram. Это будет быстрее, чем замена на быстрый SSD.
I dual-boot between an Arch-based and a Debian-based distros.
В этом случае я могу предложить одно предложение: сделать раздел подкачки больше, чем объем оперативной памяти, чтобы можно было переводить в спящий режим (АКА приостановить -на -диск )одну из этих систем и загрузить в другой одновременно,независимо от того, сколько оперативной памяти потребляется. Как только вы закончите и вернетесь к прежнему состоянию, вы вернетесь в то же самое состояние, в котором вы его оставили.
У моего ноутбука 8 ГБ ОЗУ и раздел подкачки 12 ГБ, и я иногда использую двойную загрузку между Manjaro Linux и Windows 7 таким образом.
Насколько я знаю, это самый простой и надежный способ приостановить работу диска с -на -. Это может быть возможно с файлом подкачки , но я не пробовал, и ваш пробег может отличаться. В любом случае убедитесь, что вы никогда не используете один и тот же раздел подкачки, если только вы не хотите устранять проблемы, возникающие из-за несогласованности памяти.:-)