Razdelitev niza na ločilo v Bashu

Bash

Razčlenitev manipulacije nizov v Bashu

Pri delu s skripti lupine je pogosta naloga razdelitev niza na podlagi ločila. Na primer, razmislite o nizu, ki vsebuje e-poštne naslove, ločene s podpičji. Če morate obdelati vsako e-pošto posebej, postane nujno razumevanje, kako razdeliti ta niz. Ta članek vas bo vodil skozi različne metode, kako to doseči v Bashu.

Raziskali bomo rešitve, kot je uporaba ukaza `tr` in manipuliranje z notranjim ločilom polj (IFS). Na koncu boste lahko učinkovito upravljali z delitvijo nizov in ponastavili IFS na privzeto vrednost. Poglobimo se in poenostavimo vaša opravila skriptiranja Bash!

Ukaz Opis
tr Prevede ali izbriše znake. Tukaj se uporablja za zamenjavo podpičja z znakom za novo vrstico za razdelitev niza.
IFS Notranji ločilnik polj, ki se uporablja za razdelitev nizov na podlagi določenega ločila v skriptih Bash.
read -r -a Prebere vrstico vnosa in jo razdeli v matriko. Možnost -r preprečuje, da bi bile poševnice nazaj interpretirane kot ubežni znaki.
echo Natisne besedilo v standardni izpis. Uporablja se za prikaz elementov razdeljenega niza.
split Funkcija Perl, ki razdeli niz na seznam nizov na podlagi določenega ločila.
foreach Struktura zanke Perl, ki ponavlja seznam vrednosti.

Razumevanje tehnik cepitve nizov Bash

Prvi skript Bash prikazuje, kako razdeliti niz z uporabo ukaz. Tukaj definiramo niz in uporabo v povezavi z tr za prevajanje ločila podpičja v znak za novo vrstico. To učinkovito razdeli niz na posamezne vrstice. The zanka nato ponovi vsako vrstico in natisne naslove v oglatih oklepajih. Ta metoda je enostavna in izkorišča zmogljive zmožnosti obdelave besedila ukazov Unix za manipulacijo nizov.

Druga metoda vključuje prilagajanje . Z začasno nastavitvijo na podpičje, lahko razdelimo niz v matriko. Original shranimo do OIFS preden ga spremenite, s čimer zagotovite, da ga lahko pozneje obnovimo. The ukaz prebere vhodni niz v imenovano matriko , ki ga razdeli na podlagi spremenjenega . Po obdelavi original IFS je obnovljena. Ta pristop zagotavlja bolj programski način za obravnavanje cepitve nizov v Bashu, kar nam omogoča uporabo nizov za nadaljnjo manipulacijo.

Uporaba basha za razdelitev nizov na ločilo

Bash skript

#!/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]

Razdelitev niza v Bashu z uporabo IFS

Bash skript

#!/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]

Uporaba Pythona za razdelitev nizov

Python skript

#!/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]

Uporaba Perla za razdelitev niza

Perl skript

#!/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]

Napredne tehnike razdelitve nizov v Bashu

Druga močna metoda za razdelitev nizov v Bashu vključuje uporabo ukaz. je vsestranski pripomoček v ukazni vrstici, zasnovan za skeniranje in obdelavo vzorcev. Lahko je še posebej uporaben za razdelitev nizov, ker nam omogoča definiranje ločil polj po meri. Na primer, lahko uporabimo da razdelite niz na podlagi ločila podpičja in natisnete posamezne komponente. Ta metoda je zelo prilagodljiva in lahko obravnava bolj zapletene naloge manipulacije nizov, zaradi česar je dragoceno orodje v kompletu orodij programerja Bash.

Poleg tega je ukaz lahko uporabite za razdelitev nizov na podlagi ločil. The ukaz se običajno uporablja za pridobivanje odsekov iz vsake vrstice vhodnih podatkov. Z določitvijo ločila z in izbiro polj z -f možnost, lahko učinkovito razdelimo in izločimo dele niza. Na primer z uporabo bi izvlekel prvi e-poštni naslov iz vnosnega niza. Te napredne metode zagotavljajo več nadzora in natančnosti za naloge manipulacije nizov v Bashu.

  1. Kako v Bashu razdelim niz na ločilo?
  2. Lahko uporabite spremenljivka ali podobni ukazi , , in cut za razdelitev nizov na ločilo.
  3. Kaj je spremenljivka v Bashu?
  4. The (Internal Field Separator) je posebna spremenljivka, ki definira znak(e), ki se uporablja za razdelitev vhodnega besedila na besede ali žetone.
  5. Kako lahko ponastavim spremenljivko na privzeto vrednost?
  6. Shranite izvirnik vrednost, preden jo spremenite, in obnovite po obdelavi: .
  7. Kaj pomeni ukaz do v razdelitvi nizov?
  8. The ukaz prevede ali izbriše znake. Lahko zamenja ločila z novimi vrsticami, da razdeli niz: .
  9. Ali lahko z Bash razdelim niz v matriko?
  10. Da, s spremembo spremenljivka in uporaba , lahko razdelite niz v matriko:
  11. Kaj je ukaz uporabljen za?
  12. je pripomoček ukazne vrstice za skeniranje in obdelavo vzorcev. Lahko razdeli nize z definiranjem ločil polj po meri.
  13. Kako deluje komandno delo?
  14. The ukaz izvleče razdelke iz vsake vrstice vnosa. Lahko razdeli nize tako, da določi ločilo in izbere polja: .
  15. Zakaj se uporablja pomaga pri cepljenju nizov?
  16. Uporaba vam omogoča, da določite ločila po meri za razdelitev nizov, zaradi česar je vsestranski za različne oblike vnosa.
  17. Ali je mogoče v Bashu razdeliti niz z več ločili?
  18. Da, lahko uporabite kombinacijo in za obdelavo več ločil.
  19. Ali lahko uporabim za cepitev nizov v Bashu?
  20. Medtem je predvsem urejevalnik toka, ga je mogoče kombinirati z drugimi ukazi, kot je za posredno razdelitev nizov.

Obvladovanje manipulacije nizov v Bashu lahko bistveno izboljša vašo učinkovitost skriptiranja. Ne glede na to, ali uporabljate za preprosta ločila ali naprednejša orodja, kot je in , so te tehnike bistvene za učinkovito programiranje Bash. Ne pozabite vedno obnoviti izvirnika IFS da se izognete nepričakovanemu vedenju vaših skriptov. S temi metodami lahko obravnavate široko paleto nalog obdelave nizov v vaših skriptih Bash.