Если вы готовы использовать sed
, вы можете сделать так:
sed -n '/^01\/14 08:00/,/^01\/14 08:10/p' foo
В общем, вы можете использовать переменные bash для замены конкретных времен в приведенной выше команде. Например:
st="01\/14 08:00"
en="01\/14 08:25"
sed -n "/^$st/,/^$en/p" foo #note the double quotes
Вам нужно экранировать символ /
символом \
, если вы используете /
в качестве разделителя, как показано в приведенной выше команде.
Ваш код
tail -c +${index[${contig}]} ${fasta} |
awk '$0~/>/{exit}1' |
awk -f ${pipeline}/utils/reverse-fasta.awk -
Если первый awk
находит в строке заголовка Fasta (строку, начинающуюся с символа >
), он завершает работу. Когда эта команда awk
завершается, больше никто не читает вывод команды tail
, и tail
уничтожается сигналом SIGPIPE
.
Вероятно, это связано с проблемой с вашим массивом index
или, в любом случае, с некоторым несоответствием между файлом Fasta, из которого вы читаете, и местом в файле, в котором вы ожидаете найти данные последовательности.