У меня есть набор команд, которые в настоящее время работают с одним файлом:
sed -n -e '/ABC/,/LOCUS/ p' mainfile.gbk | sed -e '$ d' >temp1
sed '/ source/,/ gene/{/ gene/!d}' temp1 >temp2
grep -v " gene" temp2 >temp3
grep -v " /locus_tag" temp3 >temp4
sed 's/product/locus_tag/g' temp4 >ABC.txt
echo "DONE" >>ABC.txt
rm temp*
(знаю, не очень эффективно, но у меня работает). Коротко о том, что он делает: выводит строки из строки ABC
в строку LOCUS
из файла mainfile.gbk
, затем пару команд sed
& grep
, чтобы сделать файл анализируемым, и, наконец, записывает все в новый файл ABC.txt
.
Теперь я хочу повторить эту команду по списку строк, т.е.
list.txt
ABC
DEF
GHI
так что каждая строка из list.txt
берется и присваивается переменной, затем выполняются команды и, наконец, для каждой строки в list.txt
выводится один файл.
Я думал о размещении команд в цикле while read line
, но каким-то образом назначение переменных не работает / они не передаются командам ...