У меня есть файл, который выглядит следующим образом:
chr1 1 5 ID1 HK1
chr2 2 8 ID2 HK3
...
Я хочу извлечь все строки для каждого идентификатора и записать их в соответствующий файл для этого идентификатора. Следующий код работает просто отлично, но я хотел бы распараллелить его с GNU parallel
, так как это слишком медленно только с одним ядром (а у меня 72):
while IFS= read -r line
do
a=$(echo "$line" | cut -f 4- | cut -f -1)
b=$(echo "$line" | cut -f -3)
echo $b >> "$a.bed"
done < "file"
Я делал это раньше с grep
, но так как некоторые файлы имеют> 800M строк, это тоже было слишком медленно. Как бы я передал это на GNU parallel
правильный путь? Спасибо!