команда awk для печати подстрок со значениями из отдельного файла

С помощью findвы должны не объединять команды через конвейер.

У него есть хороший флаг -regex, которому вы можете передать строку соответствия имени файла:

find. -regextype egrep -regex ".*facility_([0-9]*)\+SOURCE[0-9]*.*" -exec mv {} DIRECTORY \;

Окончательный \;передает каждое из совпадающих имен файлов в mvвместо {}.

Как видите, вам нужно использовать .*в начале и в конце регулярного выражения, потому что findнужно обработать на весь путь:

-regex pattern
       File name matches regular expression pattern.  This is a match on the whole path, not a search. For  example, to  match  a  file named './fubar3', you can use the regular expression '.*bar.' or '.*b.*3', but not 'f.*r3'.
0
07.01.2021, 02:19
1 ответ
awk '
  NR==FNR{ seq=$0; next }
  {
    print ">" $1 "_up"
    print substr(seq, $2, 5)
    print ">" $1 "_down"
    print substr(seq, $3, 5)
  }
' PF.seq PF.table

Выход:

>Pyrococcus_furiosus_COM1_XCP003685_1_up
ggcga
>Pyrococcus_furiosus_COM1_XCP003685_1_down
gtttg
>Pyrococcus_furiosus_COM1_XCP003685_2_up
agata
>Pyrococcus_furiosus_COM1_XCP003685_2_down
acctg
>Pyrococcus_furiosus_COM1_XCP003685_3_up
gcaat
>Pyrococcus_furiosus_COM1_XCP003685_3_down
gttgg
3
18.03.2021, 22:37

Теги

Похожие вопросы