简体   繁体   English

如何合并不以某些字符开头的行

[英]how to merge lines that do not begin with certain character

if i have the following: 如果我有以下内容:

>A13P0
ACCATAGAGAG
CCCGAGATTTA
>03HK2
ACACAGTGTGT
TTAGAGGGAGA

How do I merge lines that do not begin with > ? 如何合并不以>开头的行?

ie

>A13P0
ACCATAGAGAGCCCGAGATTTA
>03HK2
ACACAGTGTGTTTAGAGGGAGA

thanks! 谢谢!

perl -ne'
   if (/^>/) {
      print("\n") if $. != 1;
   } else {
      chomp;
   }
   print;
} {
   print("\n") if $. != 1;
'

See Specifying file to process to Perl one-liner for usage. 请参阅指定要处理的文件以Perl单线进行使用。

I know this has been asked/answered a thousand times but I can't find it so: 我知道这个问题已经被问了一千遍了,但是我找不到它:

$ awk '/^>/{print (NR>1?ORS:"") $0; next} {printf "%s", $0} END{print ""}' file
>A13P0
ACCATAGAGAGCCCGAGATTTA
>03HK2
ACACAGTGTGTTTAGAGGGAGA

使用perl命令行:

perl -pE '$.>1 && !s/^>/\n>/ && chomp; END{say}' file

With sed : 与sed:

$ sed ':a;$!N;/>/!{s/\n\([^>]\)/\1/;ta};P;D' file
>A13P0
ACCATAGAGAGCCCGAGATTTA
>03HK2
ACACAGTGTGTTTAGAGGGAGA

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM