Вам необходимо установить пакет разработки zlib
:
pkg install zlib-dev
awk -v begin=10385390 -v end=10385397 '($2 >= begin && $2 <= end) || ($3 >= begin && $3 <= end) || (begin <= $2 && end >= $3)' file
Это возвращает любую строку с диапазоном [$2,$3]
, перекрывающим заданный диапазон [begin,end]
.
Для заданных данных возвращает
1 10385389 10385390 . 21
1 10385390 10385391 . 22
1 10385391 10385392 . 22
1 10385392 10385393 . 21
1 10385393 10385394 . 22
1 10385394 10385395 . 25
1 10385395 10385396 . 25
1 10385396 10385397 . 25
1 10385397 10385398 . 25
Чтобы получить только строки с диапазоном [$2,$3]
, который находится внутри заданного диапазона [begin,end]
:
awk -v begin=10385390 -v end=10385397 '$2 >= begin && $3 <= end' file