Naučte se Linux

Výměna řetězce v Bash

Výměna řetězce v Bash

Bash je příkazový proces kompatibilní se systémem UNIX, jehož hlavním úkolem je manipulovat s řetězci prováděnými v prostředí prostředí. Programátoři jsou občas vyzváni, aby pracovali na různých souborech. Mohou přidávat, mazat a nahrazovat části nebo celý soubor, aby vyhovovaly jejich práci. To vyžaduje znalost nahrazení řetězce v bash. Ukládání dat může být dočasné nebo trvalé, v závislosti na povaze dat. Řetězec souboru je nezbytný při nahrazování obsahu souboru.

Výměna řetězce v Bash

sed je zásadní a hodí se při nahrazování řetězců v souboru bash skripty. Editor řetězců lze použít různými způsoby k nahrazení obsahu souboru v bash. Alternativní, ale zvukový editor řetězců je awk, který lze uvést do hry při nahrazování hodnoty řetězce ze souboru pomocí bash. Tento článek pomocí příkladů ukáže, jak lze obsah souboru nahradit v bash. Všimněte si, že znalosti v regexových vzorech mohou mít také velkou hodnotu při nahrazování řetězce v bash.

Manipulace s Bash String

Při drobných nebo jednoduchých výměnách není sed vyžadován. Bash může manipulovat.

Například:
Při výměně fosslinuxu.gif s .mp4, sed není vyžadován.
Chcete-li provést proces pomocí bash, použijte níže uvedený kódovaný text:

# / bin / bash název_souboru = "fosslinux.gif "new_extension =" mp4 "# Nahradit .gif s .mp4 generated_file_name = $ název_souboru /.gif /.$ new_extension echo generovaný_soubor_název

Výměna řetězce pomocí sed

sed lze označit jako editor streamů. Sed může nahradit řetězec v souborech. Podívejme se na příklad souboru s názvem singleboardbytes.txt, který má následující informace:
Foss Linux je skvělý vzdělávací web pro každého uživatele Linuxu. Podívejte se na články publikované Foss Linuxem na jejich stránkách.

Nyní z našeho souboru musíme nahradit slovo „stránky„S“webová stránka”A přejmenujte soubor na fosslinux.txt.

Porozumění syntaxi sed

sed -i 's / search_string / replace_string /' název souboru sed - je příkaz použitý při provádění výše uvedené syntaxe '-i'- používá se při úpravě obsahu v původním souboru pomocí pomůcky pro nahrazení řetězce, kdykoli v souboru existuje hledaná hodnota. ''s„- toto je náhradní příkaz“řetězec_vyhledávání„- to představuje hodnotu řetězce, která má být hledána jako náhrada v původním souboru“replace_string'- to představuje hodnotu řetězce, která se používá k nahrazení hledané hodnoty. Řetězec by měl odpovídat řetězci nalezenému příkazem 'search_string'. ''název souboru'- toto je název souboru, na který bude použita náhrada.

Spusťte ve svém terminálu následující příkaz:

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

Výměna strun pomocí sed

Poznámka: výše uvedený příkaz můžete také provést spuštěním jako bash skriptu.
Výměna pomocí -i příkaz

Po spuštění příkazu je dalším krokem nahrazení pomocí -i příkaz. -i je reprezentace „na místě“, což znamená, že soubor je pouze nahrazen a nedochází k vytváření dalších souborů. V našem příkladu výše spusťte následující příkaz:

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

Nahrazení pomocí příkazu -i

Na obrázku níže vidíte vykřičník, který říká: Soubor „/ home / tuts / singleboardbytes.txt změněn na disku.„To ukazuje, že změny byly úspěšně provedeny.

Změny provedené v singleboardbytech.txt

Na následujícím obrázku je soubor obsahující změny provedené v předchozím kroku, a to jak v názvu souboru (singleboardbytes).txt na fosslinux.txt) a slovo stránky byl změněn na webová stránka.

Konečná změna po spuštění příkazu sed

Použití proměnné jako vyhledávaných hodnot a náhrad

S malou interpolací lze proměnné použít k nahrazení řetězců. První argument sed v tomto případě musí používat uvozovky místo jednoduchých uvozovek. Váš kód bude například podobný tomuto níže:

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

Použití proměnné jako vyhledávaných hodnot a náhrad

sed má dvě příchutě, a to: FreeBSD a Linux sed. Distribuce Linuxu používají Linux sed, zatímco uživatelé OS X používají FreeBSD sed. Tyto příchutě jsou zcela odlišné, a proto nelze přenášet příkazy z jedné příchuti do druhé.

Například při nahrazování obsahu souboru pomocí FreeBSD je třeba provést zálohu pomocí .Bak rozšíření. Nebo můžete zahájit zálohu pomocí prázdných párů uvozovek bezprostředně za notací -i, jak je uvedeno v bash syntaxi níže:

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

Pokud se při používání FreeBSD neprovede zálohování, jak je znázorněno výše v kódu syntaxe, dojde k chybě podobné té, která je uvedena níže:

sed: 1: "/ Users / user / path / tuts…": další znaky na konci příkazu h

Jak nahradit soubor a porovnat vzor číslic pomocí příkazu sed

Pokud skript úspěšně spustíte, bude provedeno vyhledávání veškerého číselného obsahu přítomného v souboru. Poté bude obsah nahrazen přidáním $ před čísla.

#!/ bin / bash # Zkontrolujte, zda hodnota argumentu příkazového řádku existuje nebo není, pokud [$ 1 != ""]; pak # Prohledejte celý řetězec obsahující číslice a přidejte $ sed -i 's / \ b [0-9] \ 5 \ \ b / $ & / g' $ 1 fi

Nahrazení řetězce pomocí příkazu awk

V takovém případě použijeme k nahrazení obsahu souboru místo příkazu sed příkaz awk. Rozdíl mezi těmito příkazy spočívá v tom, že příkaz sed přímo aktualizuje původní soubor, což není případ příkazu awk.

#!/ bin / bash # Zkontrolujte, zda hodnota argumentu příkazového řádku existuje nebo není, pokud [$ 1 != ""]; then # Hledat celý řetězec na základě data awk 'sub ("02/06/2020", "12/06/2020") 1' $ 1> temp.txt && mv tepl.txt $ 1 fi

Závěr

Výše uvedené příklady jsou zásadní pro váš pokrok v učení, jak nahradit řetězec v Bash. Proto, abyste v tom byli dobří, budete muset pravidelně cvičit. Hledání a nahrazení řetězce v souboru se může zdát složité, ale při správném dodržování našich pokynů zjistíte, že je mnohem lépe zvládnutelné.

Je třeba poznamenat, že spouštění příkazů se může občas zdát lépe zvládnutelné, ale měli byste být opatrní, abyste nezpůsobili pohromu ze sedu. Když zadáte nesprávné příkazy, rozbijete počítač a způsobíte další potíže, jako je ztráta dat. Z bezpečnostních důvodů proto vždy kód zkopírujte a vložte do svého terminálu. Tím se zabrání pravopisným chybám, které by mohly váš počítač poškodit. Doufáme, že vám tento článek pomohl naučit se, jak pomocí tohoto článku nahradit řetězec v bash.

Emulace kliknutí myší vznášením pomocí myši Clickless Mouse ve Windows 10
Používání myši nebo klávesnice ve špatném držení těla nadměrného používání může mít za následek mnoho zdravotních problémů, včetně napětí, syndromu ka...
Přidejte gesta myši do Windows 10 pomocí těchto bezplatných nástrojů
V posledních letech se počítače a operační systémy značně vyvinuly. Bývaly doby, kdy uživatelé museli procházet správci souborů pomocí příkazů. Stejně...
Ovládejte a spravujte pohyb myši mezi více monitory ve Windows 10
Správce myší se dvěma displeji umožňuje ovládat a konfigurovat pohyb myši mezi více monitory zpomalením jeho pohybů poblíž hranice. Windows 10/8 vám u...