在sed中更改数字后在模式后插入换行符

时间:2013-07-16 10:16:44

标签: sed pattern-matching

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

  

lcl | NC_005966.1_gene_750

虽然最后一个数字(在本例中为750)发生了变化。数字范围为1-3407。 我怎么能告诉sed将这个模式保持在一起而不是在第一个数字之后将它们分开?

到目前为止我找到了

  

sed's / lcl | NC_005966.1_gene _ [[:digit:]] /& \ n / g'file

但是在第一个数字之后,这会中断。

2 个答案:

答案 0 :(得分:1)

尝试:

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

(请注意*

或者,您可以说:

sed '/lcl|NC_005966.1_gene_[[:digit:]]/G' file

会在遇到指定模式后添加换行符。

答案 1 :(得分:0)

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

您需要转义.,因为它是一个RE元字符,您需要[[:digit:]][[:digit:]]*来表示1-or-more digits,您需要使用\后跟一个字面换行符来实现可移植性跨越seds。