sed

Cum să înlocuiți totul după model folosind comanda „sed”

Cum să înlocuiți totul după model folosind comanda „sed”

Sarcinile de înlocuire pot fi realizate în Linux în moduri diferite. Comanda „sed” este una dintre modalitățile de efectuare a sarcinii de înlocuire. Această comandă poate fi utilizată pentru a înlocui textul dintr-un șir sau un fișier utilizând un model diferit. Modul în care puteți înlocui totul după modelul de potrivire utilizând comanda „sed” este prezentat în acest tutorial.

Înlocuiți totul după meci într-un șir:

Modul în care partea unui șir poate fi înlocuită pe baza unui model de potrivire și $ PARTITION_COLUMN a fost prezentată în această secțiune a acestui tutorial. Dar această variabilă funcționează dacă modelul se potrivește cu orice cuvânt de la începutul sau mijlocul șirului. Nu va înlocui textul dacă modelul se potrivește cu ultimul cuvânt al șirului.

Exemplu-1: Înlocuiți toate după meci folosind $ PARTITION_COLUMN

Următoarea comandă va căuta caracterul „a”, iar partea rămasă după „a” va fi înlocuită cu textul „un site de blog popular”. $ PARTITION_COLUMN.* este folosit pentru a defini partea rămasă după caracter, „a”.

$ echo "LinuxHint este un site web" | sed "s / a $ PARTITION_COLUMN.* / un site de blog popular / "

Următoarea ieșire va apărea după executarea comenzii. Aici, „un site web” a fost înlocuit cu „un site de blog popular”.


Următorul model va căuta cuvântul „web„În șir și înlocuiți partea rămasă cu„web„După text”un site de blog popular„dacă meciul există și”web'Nu este partea ultimului cuvânt al șirului.

$ echo "LinuxHint este un site web" | sed "s / web.* $ PARTITION_COLUMN.* / un site de blog popular / "

Următoarea ieșire va apărea după executarea comenzii. Aici, „site-ul web” este ultimul cuvânt al șirului și nu s-a făcut nicio înlocuire din acest motiv.

Exemplu-2: Înlocuiți toate după meci folosind modelul

Următoarea comandă va căuta cuvântul „bash'global în șir și înlocuiți totul cu cuvântul dacă cuvântul există în șir. 'g'Este folosit aici pentru căutare globală.

$ echo "Îmi place programarea bash" | sed "s / bash.* / script python / g "

Următoarea ieșire va apărea după executarea comenzii. Aici, „bash” există în mijlocul șirului, iar înlocuirea a fost făcută.

Înlocuiți totul după meci într-un fișier:

Tot conținutul unei anumite linii sau mai multe linii sau liniile rămase ale unui fișier după meci poate fi înlocuit folosind „sed'comanda. Creați un fișier text numit participare.txt cu următorul conținut pentru a testa exemplele prezentate în această secțiune.

participarea.txt

1108885 este prezent
1999979 este prezent
1769994 este absent
1105656 lipsește
1455999 este absent

Exemplul -3: Înlocuiți tot conținutul dintr-o linie a unui fișier după meci

Următoarea comandă „sed” va căuta numărul 1769994 din fișier, iar tot ce conține numărul va fi înlocuit cu textul, „1586844 este prezent” dacă numărul există în orice linie a fișierului.

$ pisică alendență.txt
$ sed "s / 1769994.* / 1586844 este prezent / "prezență.txt

Următoarea ieșire va apărea executând comenzile. Aici, numărul de căutare există în a treia linie a fișierului, iar înlocuirea a fost efectuată.

Exemplu -4: Înlocuiți tot conținutul din mai multe linii ale unui fișier după meci

Următoarea comandă „sed” arată utilizarea variabilei $ PARTITION_COLUMN pentru a înlocui mai multe linii din fișier. Comanda va căuta „110” la începutul fiecărei linii a fișierului și va înlocui totul cu „110” cu textul „Intrare nevalidă” unde va fi găsit textul potrivit.

$ participarea pisicii.txt
$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Intrare nevalidă / „participare.txt

Următoarea ieșire va apărea după executarea comenzilor. „110” există în două rânduri ale fișierului și acestea au fost înlocuite cu textul de înlocuire.

Exemplu-5: Înlocuiți tot conținutul dintr-o linie a unui fișier folosind „c” după meci

Următoarele 'sed"comanda arată utilizarea lui"c'să înlocuiască totul după meci. Aici, 'c'indică schimbarea. Comanda va căuta cuvântul „prezent„în fișier și înlocuiți tot linia cu textul,”Această linie este înlocuită'dacă cuvântul există în orice linie a fișierului.

$ participarea pisicii.txt
$ sed '/ prezent / c Această linie se înlocuiește cu' prezență.txt

Următoarea ieșire va apărea după executarea comenzilor. Cuvântul „prezent” există în primele două rânduri ale fișierului, iar aceste două rânduri au fost înlocuite cu textul de înlocuire.

Exemplu-6: Înlocuiți tot conținutul dintr-o linie a unui fișier pe baza modelului de început și de sfârșit

Uneori este necesar să înlocuiți textul pe baza modelului de început și de sfârșit. Următoarea comandă „sed” arată modul de definire a modelelor de început și de sfârșit pentru a înlocui liniile dintr-un fișier. Comanda va căuta acele linii din fișierul care începe cu numărul 110 și se termină cu cuvântul „absent” și va înlocui totul cu cuvântul „înlocuit” acolo unde modelele se potrivesc.

$ participarea pisicii.txt
$ sed -e 's / ^ 110.* absență $ / înlocuit / g 'prezență.txt

Următoarea ieșire va apărea după executarea comenzilor. Aici, prima și a patra linie încep cu numărul 110, dar cuvântul „absent” există doar în a patra linie. Deci, a patra linie a fișierului a fost înlocuită cu textul de înlocuire.

Concluzie:

Comanda „sed” este un instrument foarte puternic al Linux pentru a efectua diferite tipuri de sarcini legate de procesarea textului. Sarcina de înlocuire bazată pe modelul de potrivire este discutată în acest tutorial utilizând diferite tipuri de modele în comanda „sed”. $ PARTITION_COLUMN, 'c' și '.* 'este utilizat în acest tutorial pentru a înlocui totul dintr-o linie a fișierului în care există modelul de potrivire. Utilizările unor caractere ale modelelor definitorii s-au arătat aici, cum ar fi „^” și „$”. Există multe alte caractere pentru a defini modelul în expresie regulată în scopuri de căutare. Sper că acest tutorial va ajuta cititorul să cunoască noțiunile de bază despre înlocuirea tuturor fișierelor dintr-un fișier după meci.

OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...
OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...
SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...