Un'altra domanda per gli esperti di sed.Estrarre numeri da una stringa utilizzando espressioni regolari e regolari
Ho una stringa che rappresenta un percorso che avrà due numeri in esso. Un esempio è:
./pentaray_run2/Trace_220560.dat
Ho bisogno di estrarre il secondo di questi numeri - vale a dire 220.560
ho (con qualche aiuto dai forum) stato in grado di estrarre tutti i numeri insieme (cioè 2.220.560) con :
sed "s/[^0-9]//g"
o estrarre solo il primo numero con:
sed -r 's|^([^.]+).*$|\1|; s|^[^0-9]*([0-9]+).*$|\1|'
ma quello che sto afte r è il secondo numero !! Qualsiasi aiuto molto apprezzato.
PS il numero che sto cercando è sempre il secondo numero nella stringa.
Grandi opere a meraviglia. Immagino che _ in là significhi cercare i numeri solo dopo il trattino basso? In questo caso posso sempre aspettarmi un carattere di sottolineatura, quindi funzionerà. Il vero bit dell'espressione lo fa. * _ StackOverflow è davvero una risorsa fantastica - sono rimasto sconcertato per ore. Interessante pensate che ci sia un modo per usare il \ 1 alla fine - magari estraete tutti i numeri (cifre contigue) come sottostringhe e chiedete il secondo. Questo potrebbe essere utile a me e ad altri in futuro? – Steven