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.
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.