Именно для этого и предназначена команда join
:она объединяет два файла на основе общего поля:
$ awk '{print $1}' File1 | join - File2
M01605:153:000000000-B55NK:1:1101:10003:14536 2:N:0:1 GTTTGCGCCGATGTA
M01605:153:000000000-B55NK:1:1101:10007:14573 2:N:0:1 GGGGATAAGCGTTGC
M01605:153:000000000-B55NK:1:1101:10007:14573 2:N:0:1 GGGGATAAGCGTTGC
M01605:153:000000000-B55NK:1:1101:10009:9160 2:N:0:1 CAGAAGAGGTAATGT
M01605:153:000000000-B55NK:1:1101:10009:9160 2:N:0:1 CAGAAGAGGTAATGT
M01605:153:000000000-B55NK:1:1101:10009:9160 2:N:0:1 CAGAAGAGGTAATGT
M01605:153:000000000-B55NK:1:1101:10010:14111 2:N:0:1 CTGCGTACTGATAGC
M01605:153:000000000-B55NK:1:1101:10010:19939 2:N:0:1 TCCGTGGTGCCGGCA
M01605:153:000000000-B55NK:1:1101:10011:22802 1:N:0:1 TGAGTTCGGATAAAG
M01605:153:000000000-B55NK:1:1101:10011:22802 1:N:0:1 TGAGTTCGGATAAAG
Ваши файлы могут быть отсортированы по номерам, но не по алфавиту, как ожидается join
. Если join
жалуется, немного измените приведенную выше команду, чтобы отсортировать ввод с помощью GNU sort
:
$ awk '{print $1}' File1 | sort | join - <(sort -k1,1 --stable File2)
Поскольку в вашем втором файле есть повторяющиеся строки (см. комментарии ), вы можете изменить вторую команду sort
на sort -k1,1 --stable --unique File2
(, по-прежнему предполагая, что вы используете GNU sort
, используйтеuniq
).
Вероятно, это было как-то связано с настройками диска, потому что после:
sudo tune2fs -i 0 /dev/sda1
Setting interval between checks to 0 seconds
и
sudo tune2fs -c 0 /dev/sda1
Setting maximal mount count to -1
Вышеупомянутые две настройки оказались критически важными, проверка диска, наконец, была вызвана, так как я больше не встречаюсь с упомянутым сообщением.
Полезное чтение:https://linux.die.net/man/8/tune2fs