在sed中更改编号的图案后插入换行符

在sed中更改编号的图案后插入换行符,sed,pattern-matching,Sed,Pattern Matching,我想在以下模式后插入一个换行符 lcl|NC_005966.1_基因_750 而最后一个数字(本例中为750)发生变化。数字在1-3407之间。 我如何告诉sed保持这种模式,而不是在第一个数字之后分割它们 到目前为止我发现 sed的s/lcl | NC_005966.1_gene_[[:digit:]/&\n/g'文件 但在第一个数字之后,此选项会中断。请尝试: sed 's/lcl|NC_005966.1_gene_[[:digit:]]*/&\n/g' file (注意*) 或者

我想在以下模式后插入一个换行符

lcl|NC_005966.1_基因_750

而最后一个数字(本例中为750)发生变化。数字在1-3407之间。 我如何告诉sed保持这种模式,而不是在第一个数字之后分割它们

到目前为止我发现

sed的s/lcl | NC_005966.1_gene_[[:digit:]/&\n/g'文件

但在第一个数字之后,此选项会中断。

请尝试:

sed 's/lcl|NC_005966.1_gene_[[:digit:]]*/&\n/g' file
(注意
*

或者,你可以说:

sed '/lcl|NC_005966.1_gene_[[:digit:]]/G' file
将在遇到指定模式后添加换行符。

请尝试:

sed 's/lcl|NC_005966.1_gene_[[:digit:]]*/&\n/g' file
sed 's/lcl|NC_005966\.1_gene_[[:digit:]][[:digit:]]*/&\
/g' file
(注意
*

或者,你可以说:

sed '/lcl|NC_005966.1_gene_[[:digit:]]/G' file
它将在遇到指定的模式后添加换行符

sed 's/lcl|NC_005966\.1_gene_[[:digit:]][[:digit:]]*/&\
/g' file
您需要转义
,因为它是一个RE元字符,并且需要
[[:digit:][][[:digit:][]*
来表示
一个或多个数字
,并且需要使用
\
后跟一个文字换行,以便跨SED进行移植


您需要转义
,因为它是一个重元字符,您需要
[[:digit:][[:digit:]]*
来表示
一个或多个数字
,并且需要使用
\
后跟一个文字换行,以便跨SED进行移植。

很好的解决方案,谢谢。但不知怎么的,它在我的大文件上不起作用:/输出是lcl | NC_005966.1_gene_2(/n/n/n)5(虽然在这种情况下应该是25)很好的解决方案,谢谢。但不知何故,它在我的大文件上不起作用:/输出是lcl | NC_005966.1_gene_2(/n/n/n)5(尽管在这种情况下它应该是25)