Kako odstraniti zadnjih n znakov iz niza v Bashu
V Bashu se lahko za urejanje imen datotek z nezaželenimi končnicami uporabi obrezovanje končnih presledkov iz uporabniških vnosov ali odstranjevanje zadnjih n znakov iz niza:
1. način: Uporaba ukaza cut
Ukaz cut v Bashu se uporablja za ekstrahiranje odsekov iz vsake vrstice datoteke. Uporablja se lahko tudi za ekstrahiranje določenega obsega znakov iz niza. Če želite odstraniti zadnjih n znakov iz niza, lahko uporabimo ukaz cut z možnostjo -c in tukaj je sintaksa:
odmev 'vrvica' | rezati -c -n
Tukaj je niz dejanski niz, iz katerega želimo odstraniti zadnjih n znakov, n pa je število znakov, ki jih želimo odstraniti, spodaj je primer, ki uporablja zgornjo sintakso:
#!/bin/bash
vrvica = 'Pozdravljen Linux'
odmev ' $string ' | rezati -c -5
V zgornjem primeru smo uporabili ukaz cut za odstranitev zadnjih 6 znakov iz niza »Hello Linux« in rezultat je »Hello«.
2. način: Uporaba ukaza sed
Sed je zmogljiv urejevalnik toka, ki ga je mogoče uporabiti za izvajanje različnih transformacij besedila v datoteki ali toku vnosa. Če želite odstraniti zadnjih n znakov iz niza z uporabo sed, lahko uporabimo naslednjo sintakso ukaza:
odmev 'vrvica' | ampak 's/.\{n\}$//'Tu je n število znakov, ki jih želimo odstraniti s konca niza, spodaj pa je primer, ki uporablja ukaz sed:
#!/bin/bash
vrvica = 'Pozdravljen Linux'
odmev ' $string ' | ampak 's/.\{6\}$//'
V zgornjem primeru smo z ukazom sed odstranili zadnjih 6 znakov iz niza »Hello Linux« in rezultat je »Hello«.
3. način: Uporaba razširitve parametrov
Razširitev parametrov je funkcija v Bashu, ki nam omogoča, da manipuliramo z vrednostjo spremenljivke. Če želite odstraniti zadnjih n znakov iz niza z razširitvijo parametrov, lahko uporabimo naslednjo sintakso:
${string::-n}Tukaj spremenljivka niza vsebuje dejanski niz, iz katerega želimo odstraniti zadnjih n znakov, n pa je število znakov, ki jih želimo odstraniti.
#!/bin/bashvrvica = 'Pozdravljen Linux'
odmev ${string::-6}
V zgornjem primeru smo uporabili razširitev parametrov za odstranitev zadnjih 4 znakov iz niza »Hello Linux« in rezultat je »Hello«.
Zaključek
Če želite odstraniti zadnjih n znakov iz niza v bash, so trije načini ukaz cut, ukaz sed in razširitev parametrov. Te metode so preproste za uporabo in so lahko v pomoč pri različnih skriptnih nalogah Bash. Z uporabo teh metod lahko preprosto manipuliramo z nizi in izvajamo transformacije besedila v Bashu.