用模式替换模式+递增数字

时间:2015-07-23 13:17:35

标签: shell replace awk increment

以下是我要编辑的文本文件片段:

"> 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}'

但这只取代了>没有>的数字。

我感谢你的每一次帮助!

1 个答案:

答案 0 :(得分:2)

很难相信只需浏览一个手册页,也许还有一个快速的谷歌,你就无法弄清楚如何修复你发现的代码片段来做你想做的事情但是在这里是:

$ 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。