У меня есть текстовый файл, как показано ниже.
000005845.2_ASM584v2_genomic.fna:>NC_000913.3 562
000006605.1_ASM660v1_genomic.fna:>NC_007164.1 3827
000006605.1_ASM660v1_genomic.fna:>NC_003080.1 38291
000006685.1_ASM668v1_genomic.fna:>NC_002620.2 83560
Мой желаемый результат
NC_000913.3 562
NC_007164.1 3827
NC_003080.1 38291
NC_002620.2 83560
В первом столбце я бы хотел получить часть после >
. Как я могу это сделать?
🤔 А знаете ли вы, что...
Bash позволяет работать с переменными окружения для настройки поведения скриптов.
Я бы использовал команду вырезания, предложенную @jetchisel (с небольшой поправкой для гольфа). Используйте >
в качестве разделителя полей и распечатайте второе поле:
$ cut -d\> -f2 input.txt
NC_000913.3 562
NC_007164.1 3827
NC_003080.1 38291
NC_002620.2 83560
Вот решения bash, awk и sed по тегам. Решения bash и sed удаляют префикс строки.
$ while read -r; do echo "${REPLY#*>}"; done < input.txt
NC_000913.3 562
NC_007164.1 3827
NC_003080.1 38291
NC_002620.2 83560
$ awk -F \> '{print $2}' input.txt
NC_000913.3 562
NC_007164.1 3827
NC_003080.1 38291
NC_002620.2 83560
$ sed 's/.*>//' input.txt
NC_000913.3 562
NC_007164.1 3827
NC_003080.1 38291
NC_002620.2 83560