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.
- Kako mogu podijeliti niz na graničnik u Bashu?
- Možete koristiti varijablu ili naredbe poput , , i cut za razdvajanje nizova na razdjelniku.
- Što je varijabla u Bashu?
- The (Unutarnji razdjelnik polja) posebna je varijabla koja definira znakove koji se koriste za dijeljenje ulaznog teksta u riječi ili tokene.
- Kako mogu resetirati varijablu na zadanu vrijednost?
- Sačuvajte original vrijednost prije nego što je promijenite i vratite je nakon obrade: .
- Što to naredba do u razdvajanju nizova?
- The naredba prevodi ili briše znakove. Može zamijeniti razdjelnike s novim redcima kako bi podijelio niz: .
- Mogu li podijeliti niz u niz koristeći Bash?
- Da, promjenom varijabilni i koristeći , možete podijeliti niz u niz:
- Što je naredba korištena za?
- je uslužni program naredbenog retka za skeniranje i obradu uzoraka. Može podijeliti nizove definiranjem prilagođenih separatora polja.
- Kako se komandni rad?
- The naredba izdvaja dijelove iz svakog retka unosa. Može podijeliti nizove određivanjem graničnika i odabirom polja: .
- Zašto se koristi pomaže u razdvajanju nizova?
- Korištenje omogućuje vam definiranje prilagođenih graničnika za dijeljenje nizova, što ga čini svestranim za različite ulazne formate.
- Je li moguće podijeliti niz pomoću više graničnika u Bashu?
- Da, možete koristiti kombinaciju i za rukovanje višestrukim graničnicima.
- Mogu li koristiti za razdvajanje nizova u Bashu?
- 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.