Попробуйте это (в командной строке):
awk 'BEGIN {n_seq=0;} /^^^>/ {if(n_seq^%1000==0){file=sprintf("myseq%d.fa",n_seq);} print ^>^> file; n_seq++; next;} { print ^>^> file; }' sequences.fa
При помещении в .bat
или .cmd
пакетный файл используйте это:
awk 'BEGIN {n_seq=0;} /^^^>/ {if(n_seq%%1000==0){file=sprintf("myseq%%d.fa",n_seq);} print ^>^> file; n_seq++; next;} { print ^>^> file; }' sequences.fa
Другой способ выглядит так (в командной строке):
awk "BEGIN {n_seq=0;} /^>/ {if(n_seq%1000==0){file=sprintf(\"myseq^%d.fa\",n_seq);} print >> file; n_seq++; next;} { print >> file; }" sequences.fa
или в пакетном файле , например:
awk "BEGIN {n_seq=0;} /^>/ {if(n_seq%%1000==0){file=sprintf(\"myseq%%d.fa\",n_seq);} print >> file; n_seq++; next;} { print >> file; }" sequences.fa
Протестировано с thisфайл и изменил 1000
на 3
.
С cmd /?
:
The special characters that require quotes are:
<space>
&()[]{}^=;!'+,`~
Но обычно проблема в &<>|%
.
При использованиидвойные кавычки, вы должны быть осторожны, какие части в паре двойных кавычек, а какие нет.В приведенном выше примере myseq%%d.fa\
рассматриваются без кавычек.