Предполагая, что диапазоны file2 не перекрываются, как в вашем примере:
$ cat tst.awk
NF==3 { beg=$2; end=$3; all=$0; next }
{ print $2, ( ($2 >= beg) && ($2 <= end) ? all : "out of range" ) }
$ sort -sk2n file2 file1 | awk -f tst.awk
69509 chr1 69091 70005
69511 chr1 69091 70005
71000 out of range
358112 chr1 358070 358183
586874 chr1 586842 586955
744200 chr1 744195 744343
Он использует сортировку GNU для-s
(«стабильной сортировки» ), чтобы гарантировать, что запись file2 печатается перед записью file1
в случае идентичных $2
s.
Решение заключается в использовании kill(1, SIGINT)
вместо reboot(RB_AUTOBOOT)
Подробнее вhttps://stackoverflow.com/a/69042761/6729765
Вы должны усвоить разницу между «перезагрузкой ядра» и «перезагрузкой ОС»:
Перезагрузка ядра, скорее всего, просто очищает буферы диска, а затем перезагружается, в то время как перезагрузка ОС будет (пытаться )завершить все процессы.
Когда Sshd будет уничтожен, он будет активно завершать все существующие соединения, поэтому клиент будет проинформирован. Если другая сторона (сервер )просто сбрасывается, клиентская сторона не заметит (хорошо, PuTTY, кажется, заметит вскоре после нажатия любой клавиши (, которая не может быть доставлена )).