我正在寻找sed命令来丢弃从">"开始的行中的第11个字符(从而保留第一个字符)。所以我最想要的是改变这个文件
>LEP004_Iphiclides_podalirius
GCCTCGGCTCACTTGGAAGGTGG
>LEP054_Danaus_plexippus
GGTCGTTGACCTCACTGTTTGCA
进入以下一个:
>LEP004_Ip
GCCTCGGCTCACTTGGAAGGTGG
>LEP054_Da
GGTCGTTGACCTCACTGTTTGCA
我尝试了这个命令:sed -n' /> / {s / ^(。{10})。* / \ 1 / g; p}' seq.fas> seq_modif.fas但它只输出序列标题(而不是DNA序列)
谢谢!
答案 0 :(得分:2)
您可以使用此sed
命令:
sed '/^>/s/^\(.\{10\}\).*/\1/' file
>LEP004_Ip
GCCTCGGCTCACTTGGAAGGTGG
>LEP054_Da
GGTCGTTGACCTCACTGTTTGCA
答案 1 :(得分:2)
这可能适合你(GNU sed):
File.open("file.txt", "r+") do |file|
file.gets "marker"
file.gets
lines_to_insert.each do |line|
file.puts line
end
# EOF here
file.truncate(file.pos)
end
答案 2 :(得分:2)
以下是awk
版本:
$ awk '/^>/ {$0=substr($0,1,10)} 1' seq.fas