用新行替换特殊字符
Replacing special character by new line
我在文本文件中有以下几行。我想删除最后一个 '_' 并在其后添加一个换行符。
>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 's/\(.*\)_/\n/' file
或有争议的更好
sed -E 's/(.*)_/\n/' file
关于您的尝试,它有 3 个错误:
_
不需要转义
'
不能嵌套(这是因为shell,而不是sed
);首先,我不明白你为什么把它们放在那里:你想做什么?
- 如果您修复以上两项,以
sed 's/_/\n/g'
结尾,您将替换所有 _
,而不仅仅是最后一个。
我在文本文件中有以下几行。我想删除最后一个 '_' 并在其后添加一个换行符。
>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 's/\(.*\)_/\n/' file
或有争议的更好
sed -E 's/(.*)_/\n/' file
关于您的尝试,它有 3 个错误:
_
不需要转义'
不能嵌套(这是因为shell,而不是sed
);首先,我不明白你为什么把它们放在那里:你想做什么?- 如果您修复以上两项,以
sed 's/_/\n/g'
结尾,您将替换所有_
,而不仅仅是最后一个。