У меня есть файл - list.txt
Name CHR:BP CHR BP
ABC 1:72837239 1 72837239
DEF 1:72837500 1 72837500
GHJ 1:72836456 1 72836456
FGG 1:72940273 1 72940273
GHF 1:72837490 1 72837490
У меня есть другой файл, который представляет собой длинный список, например: region.txt
Point uniqID ID CHR pos p start end
5 ABC ABC 1 72837239 7.37E-8 72512988 74099273
61 DEF DEF 6 28354835 1.91E-9 25480328 29509596
Я хочу отфильтровать и сохранить каждую отфильтрованную часть файла. Пока у меня есть следующее, которое, очевидно, не работает.
cat region.txt | while read -r j ; do awk -F " " '{ if(($3 of list.txt == $j$4 ) \
&& ($4 of list.txt >= $j$7 in && $4 of list.txt <= $j$8)) { print } }' list.txt > region_$j$1.txt ; done
Здесь $ j должен быть номером строки. Моя цель состоит в том, чтобы l oop каждой строке region.txt, чтобы извлечь все строки в list.txt, где Col3 равно Col4 of region.txt, а значения в Col4 list.txt находятся между col7 и col8 региона. текст. Каждая из отфильтрованных строк должна быть сохранена как file_Col1_value_of_region.txt. Например, он будет сохранен как file_5.txt, а следующий файл - как file_61.txt
Спасибо за помощь.