GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa mendapatkan nomor terakhir dari string di bash?

Anda dapat menggunakan perluasan parameter dengan extglob. Pertama, hapus nomor dari akhir, lalu hapus apa yang Anda dapatkan dari awal.

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

Yang Anda butuhkan hanyalah 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. Bagaimana saya bisa memeriksa karakter kata demi kata dari string perintah bash?

  2. Bagaimana cara mendapatkan netmask dari bash?

  3. Bagaimana cara mendapatkan alamat IP saya dari baris perintah?

  1. Bagaimana cara menguji apakah suatu variabel adalah angka di Bash?

  2. Dapatkan 4 karakter keluaran terakhir dari keluaran standar

  3. Bagaimana saya bisa membuka file dengan nomor baris yang ditampilkan dari baris perintah di 'vi'?

  1. Cara mendapatkan status keluar satu lingkaran di bash

  2. Bagaimana saya bisa menghitung jumlah karakter dalam variabel Bash

  3. Bagaimana cara mendapatkan direktori absolut dari sebuah file di bash?