Come si esegue un'azione su tutti i gruppi corrispondenti quando il modello corrisponde più volte in una riga?awk estrae più gruppi da ciascuna riga
Per illustrare, voglio cercare /Hello! (\d+)/
e utilizzare i numeri, per esempio, stamparli o sommare loro, così per l'ingresso
abcHello! 200 300 Hello! Hello! 400z3
ads
Hello! 0
Se ho deciso di stamparli, mi aspetto l'uscita del
200
400
0
Per Googler: notare che con 'gawk', alias. "GNU awk", puoi effettivamente fare ciò che dice il titolo (non la domanda) in una riga (ad esempio tramite piping): '| gawk -v RS = '' '{print gensub (/()() /, "\\ 1 \\ 2", "g"); } '': D Questo supporta multi-line (a causa di' -v RS =' '') e corrispondenti sottogruppi (a causa dell'uso di' gensub' di gawk) !!! – Andrew