Shell 将图案替换为图案+;递增数

Shell 将图案替换为图案+;递增数,shell,replace,awk,increment,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 TGCCTCAAACTTCCGTGGATTAAACATCCACAGTCCCTCTAAGAAGTTAG

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

"> 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}'
但这只会将>替换为不带>的数字


我感谢你的帮助

很难相信,仅仅看一眼手册页,或者快速搜索一下谷歌,你就不知道如何修复你找到的代码片段来实现你想要的功能,但这里是:

$ 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的《有效的Awk编程》,第四版。

除了作为字符串分隔符的
之外,在由
s分隔的脚本中,您永远不能使用
s。如果/当您接受答案时,请单击它旁边的复选标记。