GNU/Linux >> Belajar Linux >  >> Linux

bash - temukan posisi indeks string dari substring

Gunakan ekspansi parameter:

t="MULTI: primary virtual IP for xyz/x.x.x.x:44595: 10.0.0.12"
searchstring="IP for"

rest=${t#*$searchstring}
echo $(( ${#t} - ${#rest} - ${#searchstring} ))

$rest berisi bagian dari $t setelah $searchstring. Oleh karena itu, posisi awal substring adalah panjang seluruh string dikurangi panjang $rest dikurangi panjang $searchstring itu sendiri.


Bahkan lebih baik dan cocok untuk lebih banyak kasus (pertimbangkan '#' versus '##' dan memiliki lebih dari satu contoh 'IP untuk') akan menghapus dari string yang cocok sampai akhir dan menggunakan panjang yang tersisa.

text="MULTI: primary virtual IP for xyz/x.x.x.x:44595: 10.0.0.12"
search="IP for"

prefix=${text%%$search*}
echo ${#prefix}

Linux
  1. Periksa apakah String Berisi Substring di Python

  2. Cara Menemukan Panjang String di Bash [Kiat Singkat]

  3. Cara Memeriksa apakah String Berisi Substring di Bash

  1. Contoh Manipulasi Bash String – Panjang, Substring, Temukan dan Ganti

  2. Konversikan string teks dalam bash ke array

  3. Apa yang dilakukan 'bash -c'?

  1. Tes Shell Untuk Menemukan Pola Dalam String?

  2. Ekspansi &Variabel Bash Brace?

  3. Setel ulang posisi pencarian riwayat bash