根据空间分割线并删除第二部分

Fra*_*pis 1 command-line sed awk shell-script split

我有一个大文件

>fid|29290408|locus|VBIEntCas2262_0001|   Phosphoglycolate phosphatase (EC 3.1.3.18)   [Enterococcus casseliflavus EC20]
gtgagaaagaaagtactttttgatttagatggaacgatcattgattcgagtgaaggaatc
tatggatcgattcaatatgcgatggaaaaaatgggaaaagagcaattagcgcaagacgta
ctgcggagctttgtggggccgcctttgattgaatccttccgtggcttgggcttcgatgaa
>fid|29290410|locus|VBIEntCas2262_0002|   hypothetical protein   [Enterococcus casseliflavus EC20]
atgatcggcgaacgttttttgatcacaccgatcgacgaaccgttagacccatacaatgag
ttagtctcaagcaatcagtttactttctttacatcaacctatgatcaaatgttcttgact
ggtcatctgattctagatgttcacccaacttcaggaactttgattttgaaaaacgaaagc
ggctatttggataccaatcttttattggaatcctctccacagttaaaacaaacgaatgcg
>fid|29290414|locus|VBIEntCas2262_0004|   FIG00630550: hypothetical protein   [Enterococcus casseliflavus EC20]
atgaagcgtgttgcagaaaactatttggttgttttttcgattcttttgctgattatatgg
ctaggcttgatccaagtgaaagaatattcgcaagaagtagccctgtcgatcatttacttt
Run Code Online (Sandbox Code Playgroud)

我需要根据空格拆分以“>”开头的每一行,在新文件中仅保留空格之前的部分,并包含以下几行。

所以我需要的文件应该是:

>fid|29290408|locus|VBIEntCas2262_0001|
gtgagaaagaaagtactttttgatttagatggaacgatcattgattcgagtgaaggaatc
tatggatcgattcaatatgcgatggaaaaaatgggaaaagagcaattagcgcaagacgta
ctgcggagctttgtggggccgcctttgattgaatccttccgtggcttgggcttcgatgaa
Run Code Online (Sandbox Code Playgroud)

等等。

标题后面的行数(以 > 开头)不是固定的。

我怎么办?

jcb*_*rmu 6

你可以使用这个命令:

awk '{print $1}' filename > newfile
Run Code Online (Sandbox Code Playgroud)

其中filename是原始大文件的名称,newfile是将获得结果的文件。

  • 或者 `cut -d' ' -f1` 可能更有效。 (2认同)