Merkkijonon jakaminen erottimessa Bashissa

Bash

String Manipulation rikkominen Bashissa

Shell-skriptien kanssa työskenneltäessä yleinen tehtävä on jakaa merkkijono erottimen perusteella. Harkitse esimerkiksi merkkijonoa, joka sisältää puolipisteillä erotetut sähköpostiosoitteet. Jos sinun on käsiteltävä jokainen sähköposti yksitellen, tämän merkkijonon jakamisen ymmärtäminen on välttämätöntä. Tämä artikkeli opastaa sinua eri tavoilla saavuttaa tämä Bashissa.

Tutkimme ratkaisuja, kuten tr-komennon käyttöä ja IFS:n (Internal Field Separator) käsittelyä. Loppuun mennessä pystyt käsittelemään merkkijonojen jakamista tehokkaasti ja palauttamaan IFS:n oletusarvoonsa. Sukellaan ja yksinkertaistetaan Bash-skriptitehtäviäsi!

Komento Kuvaus
tr Kääntää tai poistaa merkkejä. Käytetään tässä korvaamaan puolipiste rivinvaihdolla merkkijonon jakamiseksi.
IFS Sisäinen kenttäerotin, jota käytetään jakamaan merkkijonoja Bash-skriptien tietyn erottimen perusteella.
read -r -a Lukee syötteen rivin ja jakaa sen taulukkoon. Vaihtoehto -r estää kenoviivaa tulkitsemasta estomerkkejä.
echo Tulostaa tekstin vakiotulosteeseen. Käytetään jaettujen merkkijonoelementtien näyttämiseen.
split Perl-funktio, joka jakaa merkkijonon merkkijonoluetteloksi määritetyn erottimen perusteella.
foreach Perl-silmukkarakenne, joka toistuu arvoluettelon yli.

Bash-merkkijonojen jakamistekniikoiden ymmärtäminen

Ensimmäinen Bash-skripti osoittaa, kuinka merkkijono jaetaan käyttämällä komento. Tässä määrittelemme merkkijonon ja käyttää kanssa tr kääntääksesi puolipisteen erottimen rivinvaihtomerkiksi. Tämä katkaisee merkkijonon tehokkaasti yksittäisiksi riveiksi. The silmukka toistuu sitten jokaisen rivin yli ja tulostaa osoitteet hakasulkeisiin. Tämä menetelmä on yksinkertainen ja hyödyntää Unix-komentojen tehokkaita tekstinkäsittelyominaisuuksia merkkijonojen käsittelyssä.

Toinen tapa on säätää . Väliaikaisella asetuksella puolipisteeseen, voimme jakaa merkkijonon taulukkoon. Tallennamme alkuperäisen kohtaan OIFS ennen sen muokkaamista, jotta voimme palauttaa sen myöhemmin. The komento lukee syötemerkkijonon taulukkoon nimeltä , jakamalla sen muokatun perusteella . Käsittelyn jälkeen alkuperäinen IFS on palautettu. Tämä lähestymistapa tarjoaa ohjelmallisemman tavan käsitellä merkkijonojen jakamista Bashissa, jolloin voimme käyttää taulukoita lisäkäsittelyyn.

Bashin käyttäminen erottimen merkkijonojen jakamiseen

Bash-skripti

#!/usr/bin/env bash
# Input string
IN="bla@some.com;john@home.com"
# Split string using 'tr' and iterate
mails=$(echo $IN | tr ";" "\n")
for addr in $mails; do
  echo "> [$addr]"
done

# Output:
# > [bla@some.com]
# > [john@home.com]

Merkkijonon jakaminen Bashissa IFS:n avulla

Bash-skripti

#!/usr/bin/env bash
# Input string
IN="bla@some.com;john@home.com"
# Save the original IFS
OIFS=$IFS
# Set IFS to semicolon
IFS=';'
# Split string into an array
read -r -a mails2 <<< "$IN"
# Restore the original IFS
IFS=$OIFS
# Iterate over the array
for x in "${mails2[@]}"; do
  echo "> [$x]"
done

# Output:
# > [bla@some.com]
# > [john@home.com]

Pythonin käyttäminen merkkijonojen jakamiseen

Python-skripti

#!/usr/bin/env python3
# Input string
IN = "bla@some.com;john@home.com"
# Split string by semicolon
mails = IN.split(';')
# Iterate and print each element
for addr in mails:
    print(f"> [{addr}]")

# Output:
# > [bla@some.com]
# > [john@home.com]

Perlin käyttäminen merkkijonon jakamiseen

Perl Script

#!/usr/bin/env perl
use strict;
use warnings;
# Input string
my $IN = "bla@some.com;john@home.com";
# Split string by semicolon
my @mails = split(';', $IN);
# Iterate and print each element
foreach my $addr (@mails) {
    print "> [$addr]\n";
}

# Output:
# > [bla@some.com]
# > [john@home.com]

Kehittyneet merkkijonojen halkaisutekniikat bashissa

Toinen tehokas menetelmä merkkijonojen jakamiseen Bashissa on käyttää komento. on monipuolinen komentoriviohjelma, joka on suunniteltu kuvioiden skannaukseen ja käsittelyyn. Se voi olla erityisen hyödyllinen merkkijonojen jakamiseen, koska sen avulla voimme määrittää mukautettuja kenttäerottimia. Voimme käyttää esimerkiksi jakaa merkkijono puolipisteen erottimen perusteella ja tulostaa yksittäiset komponentit. Tämä menetelmä on erittäin joustava ja pystyy käsittelemään monimutkaisempia merkkijonojen käsittelytehtäviä, mikä tekee siitä arvokkaan työkalun Bash-ohjelmoijan työkalupakkissa.

Lisäksi, komentoa voidaan käyttää jakamaan merkkijonoja erottimien perusteella. The -komentoa käytetään tyypillisesti osien poimimiseen jokaiselta syötetietoriviltä. Määrittämällä erotin -vaihtoehto ja valitsemalla kentät -painikkeella -f -vaihtoehto, voimme tehokkaasti jakaa ja poimia osia merkkijonosta. Esimerkiksi käyttämällä poimiisi ensimmäisen sähköpostiosoitteen syöttömerkkijonosta. Nämä edistyneet menetelmät tarjoavat enemmän hallintaa ja tarkkuutta merkkijonojen käsittelyyn Bashissa.

  1. Kuinka jaan erottimen merkkijonon Bashissa?
  2. Voit käyttää muuttuja tai komentoja kuten , , ja cut jakaa merkkijonoja erottimella.
  3. Mikä on muuttuja Bashissa?
  4. The (Sisäinen kenttäerotin) on erityinen muuttuja, joka määrittää merkit, joita käytetään syötetyn tekstin jakamiseen sanoiksi tai tunnuksiksi.
  5. Kuinka voin nollata muuttuja oletusarvoonsa?
  6. Tallenna alkuperäinen arvo ennen sen muuttamista ja palauta se käsittelyn jälkeen: .
  7. Mitä tekee komento tehdä merkkijonojen jakamisessa?
  8. The komento kääntää tai poistaa merkkejä. Se voi korvata erottimet rivinvaihdoilla merkkijonon jakamiseksi: .
  9. Voinko jakaa merkkijonon taulukoksi Bashilla?
  10. Kyllä, vaihtamalla muuttuva ja käyttävä , voit jakaa merkkijonon taulukkoon:
  11. Mikä on komentoa käytetään?
  12. on komentorivityökalu kuvioiden skannaukseen ja käsittelyyn. Se voi jakaa merkkijonoja määrittämällä mukautettuja kenttäerottimia.
  13. Kuinka toimii komentotyö?
  14. The komento poimii osia jokaiselta syöttöriviltä. Se voi jakaa merkkijonoja määrittämällä erottimen ja valitsemalla kentät: .
  15. Miksi käyttää apua merkkijonojen jakamisessa?
  16. Käyttämällä avulla voit määrittää mukautettuja erottimia merkkijonojen jakamiseen, mikä tekee siitä monipuolisen eri syöttömuodoille.
  17. Onko mahdollista jakaa merkkijono useilla erottimilla Bashissa?
  18. Kyllä, voit käyttää yhdistelmää ja käsitellä useita erottimia.
  19. Voinko käyttää merkkijonojen jakamiseen bashissa?
  20. Sillä aikaa on ensisijaisesti stream-editori, se voidaan yhdistää muihin komentoihin, kuten jakaa merkkijonoja epäsuorasti.

Merkkijonojen manipuloinnin hallitseminen Bashissa voi merkittävästi parantaa komentosarjojen tehokkuutta. Onko käytössä yksinkertaisille erottimille tai edistyneemmille työkaluille, kuten ja , nämä tekniikat ovat välttämättömiä tehokkaan Bash-ohjelmoinnin kannalta. Muista aina palauttaa alkuperäinen IFS välttääksesi odottamattoman toiminnan skriptissäsi. Näillä menetelmillä voit käsitellä laajan valikoiman merkkijonojen käsittelytehtäviä Bash-skripteissäsi.