我需要一些有关sed命令的帮助,我认为这将有助于解决我遇到的问题。我基本上有很长的文本文件,看起来像这样:
>TRINITY_DN112253_co_g1_i2 Len=3873 path=[38000:0-183]
ACTCACGCCCACATAAT
ACT文本块继续进行,然后有更多遵循相同模式的文本块,但>后面的文本在数字上略有不同。我只想将此标题部分(后跟>的部分)替换为所有内容,直到我认为似乎合乎逻辑的sed命令的最后一个“ _”如下:
sed -i ‘s/>.*/TRINITY.*_/‘
但是,sed实际上是将每个标头更改为TRINITY。* _,而不是捕获我认为会的块。任何帮助表示赞赏!
(也为了清楚起见,我认为我的sed命令会将顶部标头块转换为此:
>TRINITY_DN112253_co_g1_
ACTCACGCCCACATAAT
答案 0 :(得分:1)
这可能会有所帮助:
sed '/^>/s/[^_]*$//' file
输出:
>TRINITY_DN112253_co_g1_ ACTCACGCCCACATAAT