sed

Ako nahradiť všetko po vzore pomocou príkazu „sed“

Ako nahradiť všetko po vzore pomocou príkazu „sed“

Náhradné úlohy sa dajú v systéme Linux vykonať rôznymi spôsobmi. Príkaz „sed“ je jedným zo spôsobov, ako vykonať úlohu nahradenia. Tento príkaz možno použiť na nahradenie textu v reťazci alebo súbore pomocou iného vzoru. Ako môžete nahradiť všetko po zhodnom vzore pomocou príkazu „sed“, je zobrazené v tomto výučbe.

Všetko po zápase nahraďte reťazcom:

V tejto časti tohto tutoriálu je zobrazené, ako je možné nahradiť časť reťazca na základe zhody vzoru a $ PARTITION_COLUMN. Ale táto premenná funguje, ak sa vzor zhoduje s akýmkoľvek slovom na začiatku alebo v strede reťazca. Nenahradí text, ak sa vzor zhoduje s posledným slovom reťazca.

Príklad 1: Po zápase všetko nahraďte pomocou $ PARTITION_COLUMN

Nasledujúci príkaz vyhľadá znak „a“ a zostávajúca časť za znakom „a“ sa nahradí textom „populárna stránka blogu“. PARTITION_COLUMN $.* sa používa na definovanie zvyšnej časti za znakom, a.

$ echo "LinuxHint je webová stránka" | sed / s $ PARTITION_COLUMN.* / populárny blogový web / „

Po spustení príkazu sa objaví nasledujúci výstup. Tu sa výraz „webová stránka“ nahrádza výrazom „populárna webová stránka blogu“.


Nasledujúci vzor vyhľadá slovo 'web„V reťazci a zvyšnú časť nahraďte znakom„web„Podľa textu,“populárna blogová stránka„ak existuje zhoda a“web„Nie je súčasťou posledného slova reťazca.

$ echo "LinuxHint je webová stránka" | sed / s.* $ PARTITION_COLUMN.* / populárny blogový web / „

Po spustení príkazu sa objaví nasledujúci výstup. „Web“ je tu posledným slovom reťazca a z tohto dôvodu sa nevykonávala nijaká výmena.

Príklad 2: Všetko po zápase nahraďte vzorom

Nasledujúci príkaz vyhľadá slovo 'bash'globálne v reťazci a nahradiť všetko slovom, ak dané slovo v reťazci existuje. „gSa tu používa na globálne vyhľadávanie.

$ echo "Páči sa mi programovanie bash" | sed "s / bash.* / skript v jazyku python / g "

Po spustení príkazu sa objaví nasledujúci výstup. Tu existuje 'bash' v strede reťazca a výmena bola vykonaná.

Všetko po zápase nahraďte v súbore:

Celý obsah konkrétneho riadku alebo viacerých riadkov alebo zostávajúcich riadkov súboru po zhode je možné nahradiť pomocou znaku „sedpríkaz. Vytvorte textový súbor s názvom dochádzka.TXT s nasledujúcim obsahom na otestovanie príkladov uvedených v tejto časti.

dochádzka.TXT

1108885 je prítomný
1999979 je prítomný
1769994 chýba
1105656 chýba
1455999 chýba

Príklad -3: Po zhode nahradiť všetok obsah z riadku súboru

Nasledujúci príkaz „sed“ vyhľadá v súbore číslo 1769994 a všetko s číslom sa nahradí textom „1586844 je prítomný“, ak číslo existuje v ktoromkoľvek riadku súboru.

$ mačací príspevok.TXT
$ sed / 1769994.* / 1586844 je prítomný / „dochádzka.TXT

Nasledujúci výstup sa objaví pri spustení príkazov. Tu existuje vyhľadávacie číslo v treťom riadku súboru a výmena bola vykonaná.

Príklad -4: Po zhode nahraďte všetok obsah z viacerých riadkov súboru

Nasledujúci príkaz „sed“ ukazuje použitie premennej $ PARTITION_COLUMN na nahradenie viacerých riadkov zo súboru. Príkaz vyhľadá „110“ na začiatku každého riadku súboru a všetko nahradí „110“ textom „Neplatný záznam“, kde sa nájde zodpovedajúci text.

$ účasť mačiek.TXT
$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Neplatný vstup / účasť.TXT

Po vykonaní príkazov sa zobrazí nasledujúci výstup. „110“ existuje v dvoch riadkoch súboru a tieto boli nahradené nahradzujúcim textom.

Príklad-5: Po skončení zápasu nahraďte všetok obsah z riadku súboru pomocou klávesu „c“

Nasledujúci 'sed'príkaz ukazuje použitie'c'nahradiť všetko po zápase. Tu, 'c'označuje zmenu. Príkaz vyhľadá slovo 'prítomný„v súbore a nahradiť celý riadok textom,“Tento riadok je nahradený„ak slovo existuje v ktoromkoľvek riadku súboru.

$ účasť mačiek.TXT
$ sed '/ present / c Tento riadok sa nahrádza' dochádzka.TXT

Po vykonaní príkazov sa zobrazí nasledujúci výstup. Slovo „prítomný“ existuje v prvých dvoch riadkoch súboru a tieto dva riadky boli nahradené novým textom.

Príklad 6: Nahradiť všetok obsah z riadku súboru na základe začiatočného a koncového vzoru

Niekedy je potrebné nahradiť text na základe začiatočného a koncového vzoru. Nasledujúci príkaz „sed“ ukazuje spôsob, ako definovať začiatočné a koncové vzory na nahradenie riadkov v súbore. Príkaz vyhľadá tie riadky v súbore, ktoré sa začínajú číslom 110 a končia sa slovom „neprítomný“, a všetko nahradí slovom „nahradený“, kde sa vzory zhodujú.

$ účasť mačiek.TXT
$ sed -e '/ ^ 110.* neprítomná $ / nahradená / g 'dochádzka.TXT

Po vykonaní príkazov sa zobrazí nasledujúci výstup. Prvý a štvrtý riadok tu začínajú číslom 110, ale slovo „neprítomný“ existuje iba v štvrtom riadku. Štvrtý riadok súboru bol teda nahradený nahradzujúcim textom.

Záver:

Príkaz 'sed' je veľmi mocný nástroj systému Linux na vykonávanie rôznych typov úloh súvisiacich so spracovaním textu. V tomto výučbe sa zaoberáme úlohou nahradenia na základe zhody vzoru pomocou rôznych typov vzorov v príkaze „sed“. $ PARTITION_COLUMN, 'c' a '.* 'sa v tomto tutoriále používa na nahradenie všetkého riadku súboru, kde existuje zodpovedajúci vzor. Tu sú zobrazené použitia niektorých znakov definujúcich vzorov, ako napríklad „^“ a „$“. Existuje mnoho ďalších znakov, ktoré definujú vzor v regulárnom výraze na účely vyhľadávania. Dúfam, že tento návod pomôže čitateľovi spoznať základy nahradenia všetkého zo súboru po zápase.

Hry Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Emulátor Dolphin vám umožní hrať vybrané hry Gamecube a Wii na osobných počítačoch Linux (PC). Emulátor Dolphin, ktorý je voľne dostupným emulátorom ...
Hry Ako používať GameConqueror Cheat Engine v Linuxe
Ako používať GameConqueror Cheat Engine v Linuxe
Tento článok obsahuje sprievodcu používaním cheatovacieho modulu GameConqueror v systéme Linux. Mnoho používateľov, ktorí hrajú hry v systéme Windows,...
Hry Najlepšie emulátory herných konzol pre systém Linux
Najlepšie emulátory herných konzol pre systém Linux
V tomto článku je uvedený zoznam populárneho softvéru na emuláciu herných konzol, ktorý je k dispozícii pre systém Linux. Emulácia je vrstva kompatibi...