【发布时间】:2016-09-28 10:49:33
【问题描述】:
如果我有以下情况:
>A13P0
ACCATAGAGAG
CCCGAGATTTA
>03HK2
ACACAGTGTGT
TTAGAGGGAGA
如何合并不以> 开头的行?
即
>A13P0
ACCATAGAGAGCCCGAGATTTA
>03HK2
ACACAGTGTGTTTAGAGGGAGA
谢谢!
【问题讨论】:
如果我有以下情况:
>A13P0
ACCATAGAGAG
CCCGAGATTTA
>03HK2
ACACAGTGTGT
TTAGAGGGAGA
如何合并不以> 开头的行?
即
>A13P0
ACCATAGAGAGCCCGAGATTTA
>03HK2
ACACAGTGTGTTTAGAGGGAGA
谢谢!
【问题讨论】:
perl -ne'
if (/^>/) {
print("\n") if $. != 1;
} else {
chomp;
}
print;
} {
print("\n") if $. != 1;
'
【讨论】:
chomp; 替换为 s/\s+\z//; 将导致它同时接受 CRLF 和 LF。
我知道这已经被问/回答了一千次,但我找不到它:
$ 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
【讨论】:
使用 sed :
$ sed ':a;$!N;/>/!{s/\n\([^>]\)/\1/;ta};P;D' file
>A13P0
ACCATAGAGAGCCCGAGATTTA
>03HK2
ACACAGTGTGTTTAGAGGGAGA
【讨论】: