GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich die letzte Zahl von String in Bash bekommen?

Sie können die Parametererweiterung mit extglob verwenden. Entfernen Sie zuerst die Nummer am Ende und entfernen Sie dann die Nummer am Anfang.

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

Alles, was Sie brauchen, ist 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. Wie liest man eine Zeichenfolge als Hex-Zahl in Bash?

  2. Wie kann ich am Anfang jeder Datei in einem Ordner in Bash eine Zeichenfolge hinzufügen?

  3. Wie kann ich eindeutige Werte aus einem Array in Bash erhalten?

  4. Wie kann ich die Anzahl der Zeichen in einer Bash-Variablen zählen?

  5. Wie erhalte ich das absolute Verzeichnis einer Datei in Bash?

So erhalten Sie die Anzahl der Prozessoren / Kerne in Linux

So erhalten Sie den Exit-Status in einer Bash-Schleife

Wie kann ich Docker-Linux-Containerinformationen aus dem Container selbst abrufen?

Wie kann ich *nur* die Anzahl der auf einer Festplatte verfügbaren Bytes in Bash abrufen?

Wie kann ich Protokollmeldungen vom LAMP-Server unter Ubuntu 10.04 erhalten?

Wie kann ich die Länge einer Videodatei von der Konsole abrufen?