Estrarre la sottostringa in Bash
Dato un nome di file nella forma someletters_12345_moreleters.ext
, voglio estrarre le 5 cifre e metterle in una variabile.
Quindi, per enfatizzare il punto, ho un nome di file con un numero x di caratteri, poi una sequenza di cinque cifre circondata da un singolo underscore su entrambi i lati e poi un'altra serie di un numero x di caratteri. Voglio prendere il numero di 5 cifre e metterlo in una variabile.
Sono molto interessato al numero di modi diversi in cui questo può essere realizzato.
680
3
Usa cut:
Più generico:
Soluzione generica in cui il numero può essere ovunque nel nome del file, utilizzando la prima di tali sequenze:
Un'altra soluzione per estrarre esattamente una parte di una variabile:
Se il vostro nome di file ha sempre il formato
stuff_digits_...
potete usare awk:Ancora un'altra soluzione per rimuovere tutto tranne le cifre, usate
C'è anche il comando integrato bash 'expr':