Предполагая, что вкладка -разделяет данные:
$ awk -F '\t' -v OFS='\t' '{ sub("-.*", "", $9); print }' file
DRX154054 ILLUMINA SINGLE ChIP-seq mm_embryonicstemcell_embryonicstemcell Mus_musculusNone No ELL1 NA NA NA ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/DRX/DRX154/DRX154054/
DRX154053 ILLUMINA SINGLE ChIP-seq mm_embryonicstemcell_embryonicstemcell Mus_musculusNone No ELL2 NA NA NA ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/DRX/DRX154/DRX154053/
ERX3608304 ILLUMINA SINGLE ChIP-Seq mm_Unknown_Unknown Mus_musculus None No EP1 NA NA NA ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/ERX/ERX360/ERX3608304/
DRX154052 ILLUMINA SINGLE ChIP-seq mm_embryonicstemcell_embryonicstemcell Mus_musculusNone No DNMT3A NA NA NA ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/DRX/DRX154/DRX154052/
Это просто применяет замену к 9-му полю, которая удаляет все, начиная с первого символа тире в этом поле. Затем измененные данные распечатываются.
Регулярное выражение -.*
будет соответствовать, начиная с первого -
и далее (, буквально «соответствовать -
, за которым следует ноль или более любых символов» ), и используя это с sub()
и пустая строка замены в 9-м поле удаляет весь текст, соответствующий этому полю. Обратите внимание, что нам не нужно использовать здесь gsub()
, так как нам нужно будет выполнять замену только один раз для каждой входной строки.
Поскольку мы модифицируем одно из полей, мы также должны убедиться, что разделитель полей вывода(OFS
)установлен на символ табуляции, иначе мы получим поля, разделенные пробелом -в выводе. Очевидно, вы могли бы сделать это и с блоком BEGIN
:
awk 'BEGIN { OFS=FS="\t" } { sub("-.*", "", $9); print }' file
Использование Миллера(https://github.com/johnkerl/miller)и запуск
mlr --tsv --implicit-csv-header --headerless-csv-output put '$9=gsub($9,"-.+$","")' input >output
у вас будет
+------------+----------+--------+----------+----------------------------------------+--------------+------+----+--------+----+----+----+-----------------------------------------------------------------------------------------+
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
+------------+----------+--------+----------+----------------------------------------+--------------+------+----+--------+----+----+----+-----------------------------------------------------------------------------------------+
| DRX154054 | ILLUMINA | SINGLE | ChIP-seq | mm_embryonicstemcell_embryonicstemcell | Mus_musculus | None | No | ELL1 | NA | NA | NA | ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/DRX/DRX154/DRX154054/ |
| DRX154053 | ILLUMINA | SINGLE | ChIP-seq | mm_embryonicstemcell_embryonicstemcell | Mus_musculus | None | No | ELL2 | NA | NA | NA | ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/DRX/DRX154/DRX154053/ |
| ERX3608304 | ILLUMINA | SINGLE | ChIP-Seq | mm_Unknown_Unknown | Mus_musculus | None | No | EP1 | NA | NA | NA | ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/ERX/ERX360/ERX3608304/ |
| DRX154052 | ILLUMINA | SINGLE | ChIP-seq | mm_embryonicstemcell_embryonicstemcell | Mus_musculus | None | No | DNMT3A | NA | NA | NA | ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByExp/sra/DRX/DRX154/DRX154052/ |
+------------+----------+--------+----------+----------------------------------------+--------------+------+----+--------+----+----+----+-----------------------------------------------------------------------------------------+
Использование substr
иindex
awk -F '\t' '{$9=substr($9, 0, index($9, "-")-1); print}' input.lst > output.lst && mv output.lst input.lst