Stringi poolitamine eraldusmärgil Bashis

Bash

Stringi manipuleerimise katkestamine Bashis

Shelliskriptidega töötamisel on tavaline ülesanne stringi eraldamine eraldaja alusel. Näiteks kaaluge stringi, mis sisaldab semikoolonitega eraldatud e-posti aadresse. Kui teil on vaja iga meili eraldi töödelda, on oluline mõista, kuidas seda stringi jagada. See artikkel juhendab teid erinevate meetodite abil selle saavutamiseks Bashis.

Uurime selliseid lahendusi nagu käsu tr kasutamine ja sisemise väljaeraldaja (IFS) manipuleerimine. Lõpuks saate stringide tükeldamisega tõhusalt hakkama ja lähtestada IFS-i vaikeväärtus. Sukeldume ja lihtsustame teie Bashi skriptimisülesandeid!

Käsk Kirjeldus
tr Tõlgib või kustutab tähemärke. Kasutatakse siin semikooloni asendamiseks reavahetuse märgiga, et stringi poolitada.
IFS Sisemine väljaeraldaja, mida kasutatakse Bashi skriptides kindla eraldaja alusel stringide jagamiseks.
read -r -a Loeb sisendrea ja jagab selle massiiviks. Valik -r takistab kaldkriipsude tõlgendamist paomärkidena.
echo Prindib teksti standardväljundisse. Kasutatakse jagatud stringielementide kuvamiseks.
split Perli funktsioon, mis jagab stringi määratud eraldaja alusel stringide loendiks.
foreach Perli ahela struktuur, mis kordab väärtuste loendit.

Bashi stringide poolitamise tehnikate mõistmine

Esimene Bashi skript näitab, kuidas stringi jagada, kasutades käsk. Siin määratleme stringi ja kasutada seoses tr semikooloni eraldaja tõlkimiseks reavahetuseks. See jagab stringi tõhusalt üksikuteks ridadeks. The silmus itereerib seejärel üle iga rea, trükkides aadressid nurksulgudesse. See meetod on lihtne ja kasutab stringidega manipuleerimiseks Unixi käskude võimsaid tekstitöötlusvõimalusi.

Teine meetod hõlmab reguleerimist . Ajutiselt seadistades semikoolonile, saame stringi massiiviks jagada. Salvestame originaali juurde OIFS enne selle muutmist, et saaksime selle hiljem taastada. The käsk loeb sisendstringi massiivi nimega , jagades selle muudetud põhjal . Pärast töötlemist originaal IFS on taastatud. See lähenemine annab programmilisema viisi stringide tükeldamise käsitlemiseks Bashis, võimaldades meil kasutada massiive edasiseks manipuleerimiseks.

Bashi kasutamine stringide eraldamiseks eraldajal

Bashi 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]

Stringi tükeldamine Bashis IFS-i abil

Bashi 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]

Pythoni kasutamine stringide poolitamiseks

Pythoni 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]

Perli kasutamine stringi jagamiseks

Perli 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]

Täiustatud stringide poolitamise tehnikad Bashis

Teine võimas meetod stringide jagamiseks Bashis hõlmab käsk. on mitmekülgne käsurea utiliit, mis on loodud mustrite skannimiseks ja töötlemiseks. See võib olla eriti kasulik stringide tükeldamisel, kuna see võimaldab meil määratleda kohandatud väljaeraldajaid. Näiteks saame kasutada stringi poolitamiseks semikooloni eraldaja põhjal ja üksikute komponentide printimiseks. See meetod on väga paindlik ja suudab toime tulla keerukamate stringidega manipuleerimise ülesannetega, muutes selle Bashi programmeerija tööriistakomplektis väärtuslikuks tööriistaks.

Lisaks on käsku saab kasutada stringide eraldamiseks eraldajate põhjal. The käsku kasutatakse tavaliselt igast sisendandmete reast lõikude eraldamiseks. Määrates eraldaja koos valikut ja valides väljad nupuga -f valikut, saame stringi osi tõhusalt poolitada ja eraldada. Näiteks kasutades eraldaks sisestusstringist esimese e-posti aadressi. Need täiustatud meetodid pakuvad Bashis stringidega manipuleerimise ülesannete jaoks suuremat kontrolli ja täpsust.

  1. Kuidas ma saan Bashis eraldaja stringi poolitada?
  2. Võite kasutada muutuja või käsud nagu , , ja cut eraldaja stringe poolitama.
  3. Mis on muutuja Bashis?
  4. The (Internal Field Separator) on spetsiaalne muutuja, mis määratleb märgi(d), mida kasutatakse sisendteksti jagamisel sõnadeks või märkideks.
  5. Kuidas ma saan lähtestada muutuja vaikeväärtusele?
  6. Salvestage originaal väärtus enne selle muutmist ja taastage see pärast töötlemist: .
  7. Mida teeb käsk teha stringi tükeldamisel?
  8. The käsk tõlgib või kustutab tähemärgid. See võib stringi poolitamiseks asendada eraldajad reavahetustega: .
  9. Kas ma saan Bashi abil stringi massiiviks jagada?
  10. Jah, muutes muutuv ja kasutades , saate stringi jagada massiiviks:
  11. Mis on jaoks kasutatud käsku?
  12. on käsurea utiliit mustrite skannimiseks ja töötlemiseks. See võib jagada stringe, määratledes kohandatud väljaeraldajad.
  13. Kuidas toimib käsutöö?
  14. The käsk eraldab lõigud igalt sisendirealt. See võib jagada stringe, määrates eraldaja ja valides väljad: .
  15. Miks kasutab abiks stringi tükeldamisel?
  16. Kasutades võimaldab teil määrata stringide poolitamiseks kohandatud eraldajad, muutes selle mitmekülgseks erinevate sisendvormingute jaoks.
  17. Kas Bashis on võimalik stringi mitme eraldajaga jagada?
  18. Jah, võite kasutada kombinatsiooni ja mitme eraldaja käsitlemiseks.
  19. Kas ma võin kasutada stringi poolitamiseks Bashis?
  20. Kuigi on peamiselt vooredaktor, seda saab kombineerida muude käskudega nagu stringe kaudselt poolitada.

Stringidega manipuleerimise valdamine Bashis võib teie skriptimise tõhusust märkimisväärselt parandada. Kas kasutades lihtsate eraldajate või keerukamate tööriistade jaoks, nagu ja , on need tehnikad tõhusa Bashi programmeerimise jaoks hädavajalikud. Ärge unustage alati originaali taastada IFS et vältida ootamatut käitumist oma skriptides. Nende meetodite abil saate oma Bashi skriptides toime tulla paljude stringide töötlemise ülesannetega.