GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu získat poslední číslo z řetězce v bash?

Rozšíření parametrů můžete použít s extglob. Nejprve odstraňte číslo z konce a poté odstraňte to, co jste dostali od začátku.

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

Vše, co potřebujete, je 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. Jak mohu přidat řetězec na začátek každého souboru ve složce v bash?

  2. Jak získám absolutní adresář souboru v bash?

  3. Jak mohu získat informace o kontejneru Docker Linux ze samotného kontejneru?

  1. jak získat prvky ze seznamu v bash?

  2. Jak mohu zkontrolovat doslovné znaky řetězce příkazu bash?

  3. Jak získám svou IP adresu z příkazového řádku?

  1. Jak číst řetězec jako hexadecimální číslo v Bash?

  2. Jak mohu získat binární soubor ze souboru .py

  3. Jak mohu otevřít soubor s čísly řádků zobrazenými z příkazového řádku v 'vi'?