2013-07-16 118 views
1

我想下面的模式插入新行的sed

拼箱後插入新行| NC_005966.1_gene_750

雖然最後一個數字(在這種情況下,750)變化。數字在1-3407的範圍內。 我該如何告訴sed保持這種模式在一起,而不是在第一個數字之後將它們分開?

到目前爲止,我發現

的sed的/ LCL | NC_005966.1_gene _ [[:數字:]]/& \ N/G'文件

但這脫落,後第一位數字。

回答

1

嘗試:

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

(注意*

或者,你可以說:

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

這將遇到指定模式後加一個換行符。

+0

很好的解決方案,謝謝。但不知何故,它不適用於我的巨大文件:/輸出是lcl | NC_005966.1_gene_2(/ n/n/n)5(雖然在這種情況下應該是25) – user2525078

+0

@ user2525078你試過什麼命令? – devnull

+0

@ user2525078它適合你嗎? – devnull

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

你需要逃避.因爲它是一個RE元字符,你需要[[:digit:]][[:digit:]]*代表1-or-more digits,你需要使用\其次是跨SEDS的可移植性字面換行符。