Naučte sa Linux

Výmena reťazca v Bashi

Výmena reťazca v Bashi

Bash je proces príkazu kompatibilného s UNIX shell, ktorého hlavnou úlohou je manipulovať s reťazcami vedenými v prostredí shell. Programátori sú niekedy vyzvaní, aby pracovali na rôznych súboroch. Môžu pridávať, mazať a nahrádzať časti alebo celý súbor tak, aby vyhovovali ich práci. To si vyžaduje vedomosti o nahradení reťazca v bashe. Uloženie údajov môže byť dočasné alebo trvalé, v závislosti od povahy údajov. Reťazec súboru je nevyhnutný pri výmene obsahu súboru.

Výmena reťazca v Bashi

sed je životne dôležitý a hodí sa pri nahradení reťazcov v súbore bash skriptmi. Editor reťazcov je možné použiť rôznymi spôsobmi na nahradenie obsahu súborov v bashe. Alternatívny, ale zvukový editor reťazcov je awk, ktorý je možné použiť pri nahradení hodnoty reťazca zo súboru pomocou bash. Tento článok pomocou príkladov ukáže, ako je možné nahradiť obsah súboru v bashe. Upozorňujeme, že znalosti v regulárnych výrazoch môžu mať veľkú hodnotu aj pri výmene reťazca v bashe.

Manipulácia s reťazcom Bash

Pri menších alebo jednoduchých výmenách nie je sed vyžadovaný. Bash môže robiť manipuláciu.

Napríklad:
Pri výmene fosslinuxu.gif s .mp4, sed sa nevyžaduje.
Na vykonanie procesu pomocou bash použite nižšie uvedený kódovaný text:

# / bin / bash názov_súboru = "fosslinux.gif "new_extension =" mp4 "# Nahradiť .gif s .mp4 generated_file_name = $ názov_súboru /.gif /.$ new_extension echo generovaný_názov_súboru

Výmena reťazca pomocou sed

sed možno označiť ako editor streamu. Sed môže nahradiť reťazec v súboroch. Pozrime sa na príklad súboru s názvom singleboardbytes.txt, ktorý má nasledujúce informácie:
Foss Linux je skvelá vzdelávacia stránka pre všetkých používateľov systému Linux. Prezrite si články publikované Foss Linuxom na ich stránkach.

Teraz z nášho súboru musíme nahradiť slovo „stránky„S“webovú stránku”A premenujte súbor na fosslinux.TXT.

Pochopenie syntaxe sed

sed -i / hľadaný_reťazec / nahradiť_reťazec / 'názov súboru sed - je príkaz použitý na vykonanie vyššie uvedenej syntaxe '-i„- používa sa pri úprave obsahu v pôvodnom súbore pomocou pomôcky na nahradenie reťazca, kedykoľvek existuje v súbore hľadaná hodnota. „s„- toto je náhradný príkaz“reťazec_ hľadania„- predstavuje hodnotu reťazca, ktorý sa má vyhľadať ako náhrada v pôvodnom súbore“nahradiť_reťazec'- predstavuje hodnotu reťazca, ktorá sa používa na nahradenie hľadanej hodnoty. Reťazec by sa mal zhodovať s reťazcom, ktorý sa nachádza v príkaze „search_string“. „názov súboru„- toto je názov súboru, pri ktorom sa použije nahradenie.

Vo svojom termináli vykonajte nasledujúci príkaz:

sed 's / site / website / g' singleboardbytes.txt> fosslinux.TXT

Výmena strún pomocou sed

Poznámka: Vyššie uvedený príkaz môžete tiež vykonať spustením ako bash skript.
Výmena pomocou -i príkaz

Po spustení príkazu je ďalším krokom nahradenie pomocou -i príkaz. -i je reprezentácia výrazu „na mieste“, čo znamená, že súbor je iba nahradený a nie je potrebné vytvárať ďalšie súbory. Pomocou vyššie uvedeného príkladu spustite nasledujúci príkaz:

sed -i / site / website / g 'singleboardbytes.TXT

Výmena pomocou príkazu -i

Na obrázku nižšie vidíte výkričník, ktorý hovorí „Súbor„ / home / tuts / singleboardbytes “.txt zmenený na disku.„To ukazuje, že zmeny boli úspešne vykonané.

Zmeny vykonané v singleboardbytoch.TXT

Na nasledujúcom obrázku je súbor, ktorý obsahuje zmeny vykonané v predchádzajúcom kroku, a to v názve súboru (singleboardbytes.txt na fosslinux.txt) a slovo stránky bol zmenený na webovú stránku.

Konečná zmena po spustení príkazu sed

Použitie premennej ako vyhľadávaných hodnôt a náhrad

S malou interpoláciou možno premenné použiť na nahradenie reťazca. Prvý argument sed, v tomto prípade, musí používať dvojité úvodzovky namiesto jednoduchých úvodzoviek. Váš kód bude napríklad podobný nasledujúcemu:

tuts () local search = $ 1 local replace = $ 2 # Poznámka: úvodzovky sed -i "s / $ search / $ replace / g" singleboardbytes.TXT 

Použitie premennej ako vyhľadávaných hodnôt a náhrad

sed má dve príchute, a to: FreeBSD a Linux sed. Distribúcia systému Linux používa systém Linux sed, zatiaľ čo používatelia systému OS X používajú systém FreeBSD sed. Tieto príchute sú úplne odlišné, a preto nemožno prenášať príkazy z jednej príchute do druhej.

Napríklad pri výmene obsahu súboru pomocou FreeBSD by sa malo zálohovanie vykonať pomocou .bak nadstavec. Alebo môžete vytvoriť zálohu pomocou prázdnych párov úvodzoviek bezprostredne po notácii -i, ako je uvedené v bash syntaxi nižšie:

tuts () local search = $ 1 local replace = $ 2 sed -i "" "s / $ search / $ replace / g" singleboardbytes.TXT 

Ak sa pri použití FreeBSD, ako je znázornené v kóde syntaxe vyššie, zálohovanie neuskutoční, dostanete sa do chyby, ako je tá, ktorá je uvedená nižšie:

sed: 1: "/ Users / user / path / tuts ...": ďalšie znaky na konci príkazu h

Ako nahradiť súbor a priradiť vzor číslic pomocou príkazu sed

Ak skript úspešne spustíte, vykoná sa vyhľadávanie všetkého číselného obsahu v súbore. Potom bude obsah nahradený pridaním $ pred čísla.

#!/ bin / bash # Skontrolujte, či hodnota argumentu príkazového riadku existuje alebo nie, ak [$ 1 != ""]; potom # Vyhľadajte celý reťazec obsahujúci číslice a pridajte $ sed -i 's / \ b [0-9] \ 5 \ \ b / $ & / g' $ 1 fi

Výmena reťazca pomocou príkazu awk

V takom prípade použijeme namiesto príkazu sed príkaz awk na nahradenie obsahu súboru. Rozdiel medzi týmito príkazmi je v tom, že príkaz sed priamo aktualizuje pôvodný súbor, čo však nie je prípad príkazu awk.

#!/ bin / bash # Skontrolujte, či hodnota argumentu príkazového riadku existuje alebo nie, ak [$ 1 != ""]; potom # Hľadať celý reťazec podľa dátumu awk 'sub ("02/06/2020", "12/06/2020") 1' $ 1> teplota.txt && mv tepl.txt $ 1 fi

Záver

Vyššie uvedené príklady sú nevyhnutné pre váš pokrok v učení sa, ako nahradiť reťazec v Bashi. Preto, aby ste v tom boli dobrí, budete musieť pravidelne cvičiť. Vyhľadávanie a nahradenie reťazca v súbore sa môže zdať zložité, ale pri správnom dodržiavaní našich pokynov ho nájdete oveľa lepšie zvládnuteľný.

Je potrebné poznamenať, že spustenie príkazov sa môže niekedy javiť ako zvládnuteľnejšie, mali by ste však byť opatrní, aby ste nespôsobili zmätok zo sedu. Ak zadáte nesprávne príkazy, počítač sa rozbije a spôsobí vám ďalšie problémy, napríklad stratu údajov. Z bezpečnostných dôvodov vždy kód skopírujte a prilepte do svojho terminálu. Predídete tak pravopisným chybám, ktoré by mohli váš počítač pokaziť. Dúfame, že vám tento článok pomohol naučiť sa, ako nahradiť reťazec v bashe pomocou tohto článku.

Hry Najlepšie linuxové distribúcie pre hry v roku 2021
Najlepšie linuxové distribúcie pre hry v roku 2021
Operačný systém Linux prešiel dlhou cestou od svojho originálneho, jednoduchého serverového vzhľadu. Tento OS sa za posledné roky nesmierne vylepšil a...
Hry Ako zachytiť a streamovať vašu hernú reláciu v systéme Linux
Ako zachytiť a streamovať vašu hernú reláciu v systéme Linux
V minulosti sa hranie hier považovalo iba za hobby, ale časom došlo v hernom priemysle k obrovskému nárastu z hľadiska technológie i počtu hráčov. Her...
Hry Najlepšie hry na hranie s ručným sledovaním
Najlepšie hry na hranie s ručným sledovaním
Oculus Quest nedávno predstavil skvelú myšlienku ručného sledovania bez ovládačov. Vďaka stále sa zvyšujúcemu počtu hier a aktivít, ktoré vykonávajú p...