Ich habe eine Datei wie folgt aussieht:Wie können Backreference-Matches für einfache mathematische Operationen verwendet werden?
~ cat dump.txt
<ItemSpec id="46301" Day="1" Week="244251"/>
<ItemSpec id="46302" Day="2" Week="244252"/>
<ItemSpec id="46303" Day="3" Week="244253"/>
<ItemSpec id="46304" Day="4" Week="244254"/>
<ItemSpec id="46305" Day="5" Week="244255|244256|244257|244255|244256|244257|244255|244256|244257|244255|244256|244257"/>
...
ich die Week
Spaltennummer hinzufügen 100.000 nach Prozess will, genau wie:
~ <simple shell code> dump.txt
<ItemSpec id="46301" Day="1" Week="344251"/>
<ItemSpec id="46302" Day="2" Week="344252"/>
<ItemSpec id="46303" Day="3" Week="344253"/>
<ItemSpec id="46304" Day="4" Week="344254"/>
<ItemSpec id="46305" Day="5" Week="344255|344256|344257|344255|344256|344257|344255|344256|344257|344255|344256|344257"/>
...
Ich weiß nicht, ob es eine einfache Art und Weise zu bedienen Rückwärtsreferenz als Zahl für mathematische Operationen. Und meine hilflose versuchen wie folgt:
~ awk '{print gensub(/([0-9]{6})/,"\\1+100000","g",$0)}' dump.txt
<ItemSpec id="46301" Day="1" Week="244251+100000"/>
<ItemSpec id="46302" Day="2" Week="244252+100000"/>
<ItemSpec id="46303" Day="3" Week="244253+100000"/>
<ItemSpec id="46304" Day="4" Week="244254+100000"/>
<ItemSpec id="46305" Day="5" Week="244255+100000|244256+100000|244257+100000|244255+100000|244256+100000|244257+100000|244255+100000|244256+100000|244257+100000|244255+100000|244256+100000|244257+100000"/>
...
Jede Idee wäre hilfreich, danke!
Eigentlich ist die 'dump.txt' nur ein zufälliger Text, den ich aussuche, was ich wirklich wissen möchte, ist ein kurzes Shell Code-Snippet für regexp mathematische Operationen. Entschuldigen Sie sich für den Ausdruck ist nicht klar. Und danke für deine Antwort, es ist sehr hilfreich. – hedleyyan
Deshalb wird eine repräsentative Stichprobe Ihrer Daten wichtig. – Sobrique