Você pode usar este comando:
awk '{print $1}' filename > newfile
em que filename
é o nome do arquivo grande original e newfile
é o arquivo que obterá os resultados.
Eu tenho um arquivo grande
>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
Eu preciso dividir cada linha começando com ">" baseado no espaço, retendo no novo arquivo apenas a parte antes dos espaços, com as seguintes linhas.
Então, o arquivo que eu preciso deve ser:
>fid|29290408|locus|VBIEntCas2262_0001|
gtgagaaagaaagtactttttgatttagatggaacgatcattgattcgagtgaaggaatc
tatggatcgattcaatatgcgatggaaaaaatgggaaaagagcaattagcgcaagacgta
ctgcggagctttgtggggccgcctttgattgaatccttccgtggcttgggcttcgatgaa
um assim por diante.
o número de linhas após o cabeçalho (começando com >) não é fixo.
Como eu poderia fazer isso?
Tags command-line awk sed split shell-script