Vedo molti esempi e pagine di manuale su come eseguire operazioni come la ricerca e la sostituzione utilizzando sed, awk o gawk.
Ma nel mio caso, ho un'espressione regolare che voglio eseguire su un file di testo per estrarre un valore specifico. Non voglio fare ricerca e sostituzione. Questo viene chiamato da bash. Facciamo un esempio:
Esempio di espressione regolare:
.*abc([0-9]+)xyz.*
File di input di esempio:
a
b
c
abc12345xyz
a
b
c
Per quanto semplice possa sembrare, non riesco a capire come chiamare correttamente sed / awk / gawk. Quello che speravo di fare, è dal mio script bash avere:
myvalue=$( sed <...something...> input.txt )
Le cose che ho provato includono:
sed -e 's/.*([0-9]).*/\\1/g' example.txt # extracts the entire input file
sed -n 's/.*([0-9]).*/\\1/g' example.txt # extracts nothing