Ich Analyse von Protokollen enthalten Informationen wie die folgenden:Wie Sub-Expression-Wert von RegExp in awk erhalten?
y1e","email":"","money":"100","coi
ich den Wert des Geldes holen will, habe ich ‚awk‘ wie:
grep pay action.log | awk '/"money":"([0-9]+)"/' ,
dann, wie ich die sub- bekommen Ausdruckswert in ([0-9] +)?
Um zu verdeutlichen, wollen Sie den numerischen Wert nach dem ':'? – Levon
Eine sed-Version wäre: 'sed -r 's | ^. * Money": "([0-9] *)". * | \ 1 |' 'oder wenn Sie keine Zeilen drucken möchten, die das tun nicht enthalten 'Geld':' sed -n -r 's | ^. * Geld ":" ([0-9] *) ". * $ | \ 1 | p'' –
@Op De Cirkel Danke! Scheint 'sed' ist mächtiger! Warum hat 'awk' kein solches Design? – RoyHu