我想在以下模式之后插入换行符
lcl|NC_005966.1_gene_750
而最后一个数字(在本例中为 750)发生了变化。数字在 1-3407 的范围内。我如何告诉 sed 将这种模式保持在一起,而不是在第一个数字之后将它们分开?
到目前为止我发现
sed 's/lcl|NC_005966.1_gene_[[:digit:]]/&\n/g' 文件
但这在第一个数字之后中断了。
我想在以下模式之后插入换行符
lcl|NC_005966.1_gene_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:]][[:digit:]]*/&\
/g' file
您需要转义.
,因为它是 RE 元字符,并且您需要[[:digit:]][[:digit:]]*
表示1-or-more digits
并且需要使用\
后跟文字换行符以实现跨 sed 的可移植性。