用换行替换特殊字符

问题描述 投票:2回答:1

我在文本文件中有以下几行。我想删除最后一个'_'并在其后添加新的换行符。

>15_48499991_ENSG00000074803_C_G_G_CCAATCGCTTTCAAGTTAGTGTG
>15_48499991_ENSG00000074803_C_G_G_CAATCGCTTTCAAGTTAGTGTGA
>15_48499991_ENSG00000074803_C_G_G_AATCGCTTTCAAGTTAGTGTGAT

Desired output:

>15_48499991_ENSG00000074803_C_G_G
CCAATCGCTTTCAAGTTAGTGTG
>15_48499991_ENSG00000074803_C_G_G
CAATCGCTTTCAAGTTAGTGTGA
>15_48499991_ENSG00000074803_C_G_G
AATCGCTTTCAAGTTAGTGTGAT

我已在下面的SED查询中使用了该功能。我无法在查询中找出问题。

sed 's/\_/'\n'/g'

sed substitution
1个回答
0
投票

匹配.*之前,您可以让*尽可能多地吃东西(因为_贪婪):

sed 's/\(.*\)_/\1\n/' file

关于您的尝试,它有3个错误:

  • _不需要转义
  • '无法嵌套;首先,我不明白你为什么把它们放在那里:你想做什么?
  • 如果修复了以上两个,最后以sed 's/_/\n/g'结尾,则将替换所有_,而不仅仅是最后一个。
© www.soinside.com 2019 - 2024. All rights reserved.