【问题标题】:Replacing pattern with pattern+incrementing number用模式+递增数替换模式
【发布时间】:2015-10-13 19:52:06
【问题描述】:

这是我要编辑的文本文件的 sn-p:

"> RECORD:W7_S7_L001_R2_001_43549049:wang1141_Nem_0425_6
AGGCTCGAACTTCCTTTGGATGAACTCCAAAAGTCCCTCTAAGAAGTTAACACCTTACAA

"> RECORD:W41_S41_L001_R2_001_36873913:wang1141_Nem_0425_6
TGCCTCAAACTTCCGTGGATTAAACATCCACAGTCCCTCTAAGAAGTTAGCCGTCAACCAA

"> RECORD:W32_S56_L001_R2_001_29095773:wang1141_Nem_0425_6
TGCCTCAAACTTCCTTATGCTTGCACATAAAGTCCCTCTAAGAAGTTAGACTCCCTATTTA

现在我想用“>$a”替换每个“>”,然后递增“$a++”。 我找到了一个几乎可行的解决方案:

>awk '/>/{sub(/start/,++n);{print}'

但这只是将 > 替换为没有 > 的数字。

感谢每一个帮助!

【问题讨论】:

    标签: shell replace awk increment


    【解决方案1】:

    很难相信只看一眼手册页,也许是快速的谷歌,你无法弄清楚如何修复你找到的代码 sn-p 来做你想做的事,但这里是:

    $ awk '/>/{sub(/>/,">"++n)}{print}' file
    ">1 RECORD:W7_S7_L001_R2_001_43549049:wang1141_Nem_0425_6
    AGGCTCGAACTTCCTTTGGATGAACTCCAAAAGTCCCTCTAAGAAGTTAACACCTTACAA
    
    ">2 RECORD:W41_S41_L001_R2_001_36873913:wang1141_Nem_0425_6
    TGCCTCAAACTTCCGTGGATTAAACATCCACAGTCCCTCTAAGAAGTTAGCCGTCAACCAA
    
    ">3 RECORD:W32_S56_L001_R2_001_29095773:wang1141_Nem_0425_6
    TGCCTCAAACTTCCTTATGCTTGCACATAAAGTCCCTCTAAGAAGTTAGACTCCCTATTTA
    

    获取 Arnold Robbins 的《Effective Awk Programming, 4th Edition》一书。

    【讨论】:

    • 除了" 是字符串分隔符之外,您永远不能在由's 分隔的脚本中使用's。如果/当您接受答案时,请点击它旁边的复选标记。
    猜你喜欢
    • 2012-04-06
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 2020-04-24
    • 2020-05-19
    • 2018-01-16
    • 2012-03-05
    相关资源
    最近更新 更多