我想下面的模式插入新行的sed
拼箱後插入新行| NC_005966.1_gene_750
雖然最後一個數字(在這種情況下,750)變化。數字在1-3407的範圍內。 我該如何告訴sed保持這種模式在一起,而不是在第一個數字之後將它們分開?
到目前爲止,我發現
的sed的/ LCL | NC_005966.1_gene _ [[:數字:]]/& \ N/G'文件
但這脫落,後第一位數字。
我想下面的模式插入新行的sed
拼箱後插入新行| NC_005966.1_gene_750
雖然最後一個數字(在這種情況下,750)變化。數字在1-3407的範圍內。 我該如何告訴sed保持這種模式在一起,而不是在第一個數字之後將它們分開?
到目前爲止,我發現
的sed的/ LCL | NC_005966.1_gene _ [[:數字:]]/& \ 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
,你需要使用\
其次是跨SEDS的可移植性字面換行符。
很好的解決方案,謝謝。但不知何故,它不適用於我的巨大文件:/輸出是lcl | NC_005966.1_gene_2(/ n/n/n)5(雖然在這種情況下應該是25) – user2525078
@ user2525078你試過什麼命令? – devnull
@ user2525078它適合你嗎? – devnull