Rozdelenie reťazca na oddeľovači v Bash

Bash

Prelomenie manipulácie so strunami v Bash

Pri práci s shell skriptami je bežnou úlohou rozdeliť reťazec na základe oddeľovača. Predstavte si napríklad reťazec obsahujúci e-mailové adresy oddelené bodkočiarkou. Ak potrebujete spracovať každý e-mail jednotlivo, je nevyhnutné pochopiť, ako rozdeliť tento reťazec. Tento článok vás prevedie rôznymi metódami, ako to dosiahnuť v Bash.

Preskúmame riešenia, ako je použitie príkazu `tr` a manipulácia s interným separátorom polí (IFS). Nakoniec budete schopní efektívne zvládnuť rozdelenie reťazcov a resetovať IFS na predvolenú hodnotu. Poďme sa ponoriť a zjednodušiť si úlohy skriptovania Bash!

Príkaz Popis
tr Prekladá alebo odstraňuje znaky. Používa sa tu na nahradenie bodkočiarky znakom nového riadku na rozdelenie reťazca.
IFS Interný oddeľovač polí, ktorý sa používa na rozdelenie reťazcov na základe špecifického oddeľovača v skriptoch Bash.
read -r -a Prečíta riadok vstupu a rozdelí ho do poľa. Voľba -r zabraňuje interpretácii spätných lomiek ako únikových znakov.
echo Vytlačí text na štandardný výstup. Používa sa na zobrazenie prvkov rozdelených reťazcov.
split Funkcia v jazyku Perl, ktorá rozdeľuje reťazec na zoznam reťazcov na základe zadaného oddeľovača.
foreach Štruktúra cyklu Perl, ktorá iteruje cez zoznam hodnôt.

Pochopenie techník delenia bashových strún

Prvý skript Bash ukazuje, ako rozdeliť reťazec pomocou príkaz. Tu definujeme reťazec a používať v spojení s tr preložiť oddeľovač bodkočiarky na znak nového riadku. Tým sa struna efektívne rozbije na jednotlivé riadky. The slučka potom iteruje cez každý riadok a vytlačí adresy v hranatých zátvorkách. Táto metóda je jednoduchá a využíva výkonné možnosti spracovania textu príkazov Unix na manipuláciu s reťazcami.

Ďalší spôsob zahŕňa úpravu . Dočasným nastavením do bodkočiarky, môžeme reťazec rozdeliť do poľa. Originál uložíme do OIFS pred jeho úpravou, aby sme ho mohli neskôr obnoviť. The príkaz načíta vstupný reťazec do poľa s názvom , ktorá ho rozdeľuje na základe upraveného . Po spracovaní originál IFS je obnovená. Tento prístup poskytuje viac programový spôsob, ako zvládnuť rozdelenie reťazcov v Bash, čo nám umožňuje využívať polia na ďalšiu manipuláciu.

Použitie Bash na rozdelenie reťazcov na oddeľovači

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]

Rozdelenie reťazca v Bash pomocou 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]

Použitie Pythonu na delenie reťazcov

Skript Python

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

Použitie Perlu na rozdelenie reťazca

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]

Pokročilé techniky delenia strún v Bash

Ďalšia účinná metóda na rozdelenie reťazcov v Bash zahŕňa použitie príkaz. je všestranný nástroj príkazového riadka určený na skenovanie a spracovanie vzorov. Môže byť obzvlášť užitočný pri delení reťazcov, pretože nám umožňuje definovať vlastné oddeľovače polí. Napríklad môžeme použiť rozdeliť reťazec na základe bodkočiarky a vytlačiť jednotlivé komponenty. Táto metóda je vysoko flexibilná a dokáže zvládnuť zložitejšie úlohy manipulácie s reťazcami, vďaka čomu je cenným nástrojom v súprave nástrojov programátora Bash.

Okrem toho, príkaz možno použiť na rozdelenie reťazcov na základe oddeľovačov. The príkaz sa zvyčajne používa na extrahovanie sekcií z každého riadku vstupných údajov. Zadaním oddeľovača s a výberom polí pomocou -f možnosť, môžeme efektívne rozdeliť a extrahovať časti reťazca. Napríklad pomocou by extrahovalo prvú e-mailovú adresu zo vstupného reťazca. Tieto pokročilé metódy poskytujú väčšiu kontrolu a presnosť pre úlohy manipulácie s reťazcami v Bash.

  1. Ako rozdelím reťazec na oddeľovači v Bash?
  2. Môžete použiť premenná alebo príkazy ako , , a cut na rozdelenie reťazcov na oddeľovači.
  3. Čo je premenná v Bash?
  4. The (Interný oddeľovač polí) je špeciálna premenná, ktorá definuje znak (znaky), ktorý sa používa na rozdelenie vstupného textu na slová alebo tokeny.
  5. Ako môžem resetovať premennej na predvolenú hodnotu?
  6. Uložte originál hodnotu pred jej zmenou a po spracovaní ju obnovte: .
  7. Čo robí príkaz urobiť v rozdelení reťazcov?
  8. The príkaz preloží alebo vymaže znaky. Na rozdelenie reťazca môže nahradiť oddeľovače novými riadkami: .
  9. Môžem rozdeliť reťazec do poľa pomocou Bash?
  10. Áno, zmenou variabilné a používanie , môžete rozdeliť reťazec do poľa:
  11. Čo je príkaz používaný na?
  12. je nástroj príkazového riadka na skenovanie a spracovanie vzorov. Dokáže rozdeliť reťazce definovaním vlastných oddeľovačov polí.
  13. Ako sa príkazová práca?
  14. The príkaz extrahuje sekcie z každého riadku vstupu. Môže rozdeliť reťazce zadaním oddeľovača a výberom polí: .
  15. Prečo sa používa užitočné pri rozdeľovaní reťazcov?
  16. Použitím umožňuje definovať vlastné oddeľovače na rozdelenie reťazcov, vďaka čomu je univerzálny pre rôzne vstupné formáty.
  17. Je možné rozdeliť reťazec viacerými oddeľovačmi v Bash?
  18. Áno, môžete použiť kombináciu a zvládnuť viacero oddeľovačov.
  19. Môžem použiť na delenie strún v Bash?
  20. Zatiaľ čo je primárne stream editor, dá sa kombinovať s inými príkazmi ako napr nepriamo rozdeliť struny.

Zvládnutie manipulácie s reťazcami v Bash môže výrazne zlepšiť efektivitu vášho skriptovania. Či už pomocou pre jednoduché oddeľovače alebo pokročilejšie nástroje ako a , tieto techniky sú nevyhnutné pre efektívne programovanie Bash. Nezabudnite vždy obnoviť originál IFS aby ste sa vyhli neočakávanému správaniu vo vašich skriptoch. Pomocou týchto metód môžete spracovať širokú škálu úloh spracovania reťazcov vo vašich skriptoch Bash.