특정 문자열을 기반으로 새 줄을 시작하고 같은 줄의 해당 문자열 사이에 줄을 추가해야 합니다.
입력하다:
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