字符X

时间:2015-05-12 18:46:53

标签: regex bash sed

我正在寻找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序列)

谢谢!

3 个答案:

答案 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