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。如果/当您接受答案时,请单击它旁边的复选标记。