根据特定字符串开始新行

根据特定字符串开始新行

我需要根据特定字符串开始一个新行,并将这些字符串之间的行添加到同一行上。

输入:

Gator_locus100 

AGTCGTGTAGATGATAGTCGATGATGGATGANNNNGTACGT
GCTCAGTCGTGCTCGTCGATCGATCGTCAGCTCGATCGATCGATCGATCGACTCGATCG
GCTCGATCGATCGATC

Gator_locus101

ATCGATCGATCGATCGATCGATCGATCGATCGAT
GCAGTCGATCGATACGATCGATACGACTACGA
TCGATCGATCGCATCGATCGATCGACTC

Gator_locus102
NNNNNNNNNGCTCAGTCGATCGATCGCATCGATCGACTACGTACGATCGATCAGCATCAG
GCTCAGTCGTGCTCGTCGATCGATCGTCAGCTCGATCGATCGATCGATCGACTCGATCG
GACTCAGATCGATGACTACGATCAGATCGATAACGATCAGTACGACTACGATCAGCATCAGAT
NNNNNNNNNNNNNNNNNNNNNGACTACGACATCGATCAGACTCAGACGT

输出:

Gator_locus100  AGTCGTGTAGATGATAGTCGATGATGGATGANNNNGTACGTGCTCAGTC....

Gator_locus101 ATCGATCGATCGATCGATCGCGATGCAGTCGATCGATACGATCGATACG....

Gator_locus102 NNNNNNNNNGCTCAGTCGATCGATCGCATCGATCGACTACGTACGATC .....

这个怎么做?

答案1

awk解决方案:

awk -v ORS= '/Gator_/{ if (NR > 1) print RS RS }1; END{ print RS }' file

输出:

Gator_locus100 AGTCGTGTAGATGATAGTCGATGATGGATGANNNNGTACGTGCTCAGTCGTGCTCGTCGATCGATCGTCAGCTCGATCGATCGATCGATCGACTCGATCGGCTCGATCGATCGATC

Gator_locus101ATCGATCGATCGATCGATCGATCGATCGATCGATGCAGTCGATCGATACGATCGATACGACTACGATCGATCGATCGCATCGATCGATCGACTC

Gator_locus102NNNNNNNNNGCTCAGTCGATCGATCGCATCGATCGACTACGTACGATCGATCAGCATCAGGCTCAGTCGTGCTCGTCGATCGATCGTCAGCTCGATCGATCGATCGATCGACTCGATCGGACTCAGATCGATGACTACGATCAGATCGATAACGATCAGTACGACTACGATCAGCATCAGATNNNNNNNNNNNNNNNNNNNNNGACTACGACATCGATCAGACTCAGACGT

相关内容