Razdvajanje niza na razdjelnik u Bashu

Bash

Razbijanje manipulacije nizovima u Bashu

Kada radite sa skriptama ljuske, uobičajeni zadatak je podijeliti niz na temelju graničnika. Na primjer, razmotrite niz koji sadrži adrese e-pošte odvojene točkom i zarezom. Ako trebate obraditi svaku e-poštu pojedinačno, važno je razumjeti kako podijeliti ovaj niz. Ovaj će vas članak voditi kroz različite metode kako to postići u Bashu.

Istražit ćemo rješenja kao što je korištenje naredbe `tr` i manipuliranje unutarnjim razdjelnikom polja (IFS). Na kraju ćete moći učinkovito upravljati dijeljenjem nizova i vratiti IFS na zadanu vrijednost. Uronimo u to i pojednostavimo vaše Bash skriptne zadatke!

Naredba Opis
tr Prevodi ili briše znakove. Ovdje se koristi za zamjenu točke i zareza znakom novog retka za razdvajanje niza.
IFS Unutarnji razdjelnik polja, koristi se za razdvajanje nizova na temelju određenog graničnika u Bash skriptama.
read -r -a Čita redak unosa i dijeli ga u polje. Opcija -r sprječava da se obrnute kose crte tumače kao izlazni znakovi.
echo Ispisuje tekst na standardni izlaz. Koristi se za prikaz podijeljenih elemenata niza.
split Perl funkcija koja dijeli niz na popis nizova na temelju određenog graničnika.
foreach Perl struktura petlje koja ponavlja popis vrijednosti.

Razumijevanje Bash tehnika dijeljenja nizova

Prva Bash skripta pokazuje kako podijeliti niz pomoću naredba. Ovdje definiramo niz i koristiti u spoju sa tr za prevođenje razdjelnika točke i zareza u znak novog retka. Ovo učinkovito rastavlja niz u pojedinačne retke. The petlja zatim ponavlja svaki redak ispisujući adrese unutar uglatih zagrada. Ova metoda je jednostavna i iskorištava moćne mogućnosti obrade teksta Unix naredbi za manipuliranje nizovima.

Druga metoda uključuje podešavanje . Privremenim postavljanjem na točku i zarez, možemo podijeliti niz u niz. Čuvamo original do OIFS prije nego što ga izmijenite, osiguravajući da ga kasnije možemo vratiti. The naredba čita ulazni niz u polje tzv , dijeleći ga na temelju modificiranog . Nakon obrade, original IFS se obnavlja. Ovaj pristup pruža programskiji način za rukovanje dijeljenjem nizova u Bashu, dopuštajući nam da koristimo nizove za daljnju manipulaciju.

Korištenje Basha za razdvajanje nizova na razdjelniku

Bash skripta

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

Dijeljenje niza u Bashu pomoću IFS-a

Bash skripta

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

Korištenje Pythona za dijeljenje nizova

Python skripta

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

Korištenje Perla za razdvajanje niza

Perl skripta

#!/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 dijeljenja nizova u Bashu

Još jedna moćna metoda za dijeljenje nizova u Bashu uključuje korištenje naredba. je svestrani uslužni program naredbenog retka dizajniran za skeniranje i obradu uzoraka. Može biti osobito korisno za dijeljenje nizova jer nam omogućuje definiranje prilagođenih separatora polja. Na primjer, možemo koristiti da biste podijelili niz na temelju razdjelnika točke-zareza i ispisali pojedinačne komponente. Ova je metoda vrlo fleksibilna i može se nositi sa složenijim zadacima manipulacije nizovima, što je čini vrijednim alatom u Bash programerskom alatu.

Osim toga, naredba se može koristiti za dijeljenje nizova na temelju graničnika. The naredba se obično koristi za izdvajanje odjeljaka iz svakog retka ulaznih podataka. Određivanjem graničnika s opciju i odabirom polja s -f opciju, možemo učinkovito podijeliti i izdvojiti dijelove niza. Na primjer, koristeći izdvojio bi prvu adresu e-pošte iz niza unosa. Ove napredne metode pružaju više kontrole i preciznosti za zadatke manipulacije nizovima u Bashu.

  1. Kako mogu podijeliti niz na graničnik u Bashu?
  2. Možete koristiti varijablu ili naredbe poput , , i cut za razdvajanje nizova na razdjelniku.
  3. Što je varijabla u Bashu?
  4. The (Unutarnji razdjelnik polja) posebna je varijabla koja definira znakove koji se koriste za dijeljenje ulaznog teksta u riječi ili tokene.
  5. Kako mogu resetirati varijablu na zadanu vrijednost?
  6. Sačuvajte original vrijednost prije nego što je promijenite i vratite je nakon obrade: .
  7. Što to naredba do u razdvajanju nizova?
  8. The naredba prevodi ili briše znakove. Može zamijeniti razdjelnike s novim redcima kako bi podijelio niz: .
  9. Mogu li podijeliti niz u niz koristeći Bash?
  10. Da, promjenom varijabilni i koristeći , možete podijeliti niz u niz:
  11. Što je naredba korištena za?
  12. je uslužni program naredbenog retka za skeniranje i obradu uzoraka. Može podijeliti nizove definiranjem prilagođenih separatora polja.
  13. Kako se komandni rad?
  14. The naredba izdvaja dijelove iz svakog retka unosa. Može podijeliti nizove određivanjem graničnika i odabirom polja: .
  15. Zašto se koristi pomaže u razdvajanju nizova?
  16. Korištenje omogućuje vam definiranje prilagođenih graničnika za dijeljenje nizova, što ga čini svestranim za različite ulazne formate.
  17. Je li moguće podijeliti niz pomoću više graničnika u Bashu?
  18. Da, možete koristiti kombinaciju i za rukovanje višestrukim graničnicima.
  19. Mogu li koristiti za razdvajanje nizova u Bashu?
  20. Dok je prvenstveno uređivač toka, može se kombinirati s drugim naredbama kao što su za neizravno dijeljenje nizova.

Savladavanje manipulacije nizovima u Bashu može značajno poboljšati vašu učinkovitost skriptiranja. Bilo da koristite za jednostavne graničnike ili naprednije alate poput i , te su tehnike bitne za učinkovito Bash programiranje. Ne zaboravite uvijek vratiti izvornik IFS kako biste izbjegli neočekivano ponašanje u vašim skriptama. Pomoću ovih metoda možete rješavati širok raspon zadataka obrade nizova u svojim Bash skriptama.