GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso ottenere l'ultimo numero dalla stringa in bash?

Puoi usare l'espansione dei parametri con extglob. Per prima cosa, rimuovi il numero dalla fine, quindi rimuovi quello che hai ottenuto dall'inizio.

#!/bin/bash
shopt -s extglob
for str in str1s2 djfs1d2.3 fefwfw4rfe45 234ef8 ; do
    without_number=${str%%+([0-9])}
    echo ${str#$without_number}
done

Tutto ciò di cui hai bisogno è grep -Eo '[0-9]+$' :

[email protected]:~$ echo 234ef85 |grep -Eo '[0-9]+$'          ## --> 85
[email protected]:~$ echo 234ef856 |grep -Eo '[0-9]+$'         ## --> 856
[email protected]:~$ echo 234ef85d6 |grep -Eo '[0-9]+$'        ## --> 6
[email protected]:~$ echo 234ef85d.6 |grep -Eo '[0-9]+$'       ## --> 6
[email protected]:~$ echo 234ef85d.6. |grep -Eo '[0-9]+$'      ## --> no result
[email protected]:~$ echo 234ef85d.6.1 |grep -Eo '[0-9]+$'     ## --> 1
[email protected]:~$ echo 234ef85d.6.1222 |grep -Eo '[0-9]+$'  ## --> 1222

Linux
  1. Come leggere la stringa come numero esadecimale in Bash?

  2. Come posso aggiungere una stringa all'inizio di ogni file in una cartella in bash?

  3. Ottieni gli ultimi 4 caratteri dell'output da standard out

  4. Come ottenere lo stato di uscita un ciclo in bash

  5. Come posso contare il numero di caratteri in una variabile Bash

Come ottenere il numero di processori/core in Linux

Come posso ottenere messaggi di registro dal server LAMP su Ubuntu 10.04?

Come posso ottenere la lunghezza di un file video dalla console?

Come ottenere netmask da bash?

Come posso ottenere un binario da un file .py

Come posso aprire un file con i numeri di riga visualizzati dalla riga di comando in "vi"?