50 `dar` Exemple de comandă

50 Sed Command Examples



`sed` este o caracteristică utilă de procesare a textului GNU / Linux. Forma completă de „sed” este Stream Editor. Multe tipuri de sarcini simple și complicate de procesare a textului pot fi realizate foarte ușor folosind comanda `sed`. Orice șir particular dintr-un text sau un fișier poate fi căutat, înlocuit și șters folosind expresia regulată cu comanda `sed. Dar aceste comenzi efectuează temporar toate tipurile de modificări și conținutul fișierului original nu este modificat în mod implicit. Utilizatorul poate stoca conținutul modificat într-un alt fișier, dacă este necesar. Utilizările de bază ale comenzii `sed` sunt explicate în acest tutorial utilizând 50 de exemple unice. Înainte de a începe acest tutorial, trebuie să verificați versiunea instalată a„ sed` în sistemul dvs. de operare executând următoarea comandă. Tutorialul este conceput pe baza GNU sed. Deci, această versiune de „sed” va fi necesară pentru a practica exemplele prezentate în acest tutorial.

$sed --versiune

Următoarea ieșire arată că GNU Sed din versiunea 4.4 este instalat în sistem.









Sintaxă:



sed [Opțiuni]...[scenariu] [fişier]

Dacă niciun nume de fișier nu este furnizat cu comanda `sed`, atunci scriptul va funcționa pe datele de intrare standard. Scriptul `sed` poate fi executat fără nicio opțiune.





Conţinut :

  1. Înlocuirea de bază a textului folosind „sed”
  2. Înlocuiți toate instanțele unui text dintr-o anumită linie a unui fișier utilizând opțiunea „g”
  3. Înlocuiți a doua apariție doar a unui meci pe fiecare linie
  4. Înlocuiți ultima apariție a unui meci pe fiecare linie
  5. Înlocuiți prima potrivire dintr-un fișier cu text nou
  6. Înlocuiți ultima potrivire dintr-un fișier cu text nou
  7. Scăparea barei inversă în comenzile de înlocuire pentru a gestiona căutarea și înlocuirea căilor de fișiere
  8. Înlocuiți calea completă a tuturor fișierelor doar cu numele fișierului fără director
  9. Înlocuiți textul, dar numai dacă se găsește un alt text în șir
  10. Înlocuiți textul, dar numai dacă un alt text nu este găsit în șir
  11. Adăugați șir înainte după modelul de potrivire folosind „ 1 '
  12. Ștergeți liniile potrivite
  13. Ștergeți linia potrivită și 2 linii după potrivirea liniei
  14. Ștergeți toate spațiile la sfârșitul liniei de text
  15. Ștergeți toate liniile care au o potrivire de două ori pe linie
  16. Ștergeți toate liniile care au singurul spațiu alb
  17. Ștergeți toate caracterele neprimabile
  18. Dacă există o potrivire în linie, adăugați ceva la sfârșitul liniei
  19. Dacă există o potrivire în linie, introduceți linia înainte de meci
  20. Dacă există o potrivire în linie, introduceți linia după meci
  21. Dacă nu există o potrivire, adăugați ceva la sfârșitul liniei
  22. Dacă nu există o potrivire, ștergeți linia
  23. Duplicați textul potrivit după adăugarea unui spațiu după text
  24. Înlocuiți una dintr-o listă de șiruri cu șirul nou
  25. Înlocuiți un șir potrivit cu un șir care conține linii noi
  26. Eliminați liniile noi din fișier și introduceți o virgulă la sfârșitul fiecărei linii
  27. Eliminați virgulele și adăugați linii noi pentru a împărți textul în mai multe linii
  28. Găsiți potrivirea nesensibilă la majuscule și ștergeți linia
  29. Găsiți o potrivire nesensibilă la majuscule și înlocuiți-o cu text nou
  30. Găsiți o potrivire nesensibilă la majuscule și majuscule și înlocuiți-o cu toate majusculele aceluiași text
  31. Găsiți o potrivire nesensibilă la majuscule și înlocuiți-o cu toate minusculele din același text
  32. Înlocuiți toate caracterele majuscule din text cu caractere mici
  33. Căutați numărul în linie și adăugați simbolul monedei după număr
  34. Adăugați virgule la numerele care au mai mult de 3 cifre
  35. Înlocuiți caracterele filelor cu 4 caractere spațiale
  36. Înlocuiți 4 caractere spațiale consecutive cu un caracter tab
  37. Trunchiați toate liniile la primele 80 de caractere
  38. Căutați un regex șir și adăugați un text standard după acesta
  39. Căutați un regex șir și o a doua copie a șirului găsit după acesta
  40. Rularea scripturilor `sed` cu mai multe linii dintr-un fișier
  41. Potriviți un model cu mai multe linii și înlocuiți-l cu noul text cu mai multe linii
  42. Înlocuiți ordinea a două cuvinte care se potrivesc cu un model
  43. Utilizați mai multe comenzi sed din linia de comandă
  44. Combinați sed cu alte comenzi
  45. Introduceți o linie goală într-un fișier
  46. Ștergeți toate caracterele alfanumerice din fiecare linie a unui fișier.
  47. Folosiți „&” pentru a potrivi șirul
  48. Comutați perechea de cuvinte
  49. Scrieți cu majuscule primul caracter al fiecărui cuvânt
  50. Imprimați numerele de linie ale fișierului

1. Înlocuirea de bază a textului folosind „sed”

Orice parte a unui text poate fi căutată și înlocuită folosind căutarea și înlocuirea modelului folosind comanda `sed`. În exemplul următor, „s” indică sarcina de căutare și înlocuire. Cuvântul „Bash” va fi căutat în text, Bash Scripting Language și dacă cuvântul există în text, acesta va fi înlocuit cu cuvântul „Perl”.



$aruncat „Limbaj de scriptare Bash” | sed 's / Bash / Perl /'

Ieșire:

Cuvântul „Bash” există în text. Deci rezultatul este „Limbajul de scriptare Perl”.

Comanda `sed` poate fi utilizată și pentru substituirea oricărei părți a conținutului fișierului. Creați un fișier text numit weekday.txt cu următorul conținut.

weekday.txt

luni
marţi
miercuri
joi
vineri
sâmbătă
duminică

Următoarea comandă va căuta și înlocui textul „Duminică”, cu textul „Duminica este sărbătoare”.

$pisicăweekday.txt
$sed 's / duminică / duminica este sărbătoare /'weekday.txt

Ieșire:

„Duminică” există în fișierul weekday.txt și acest cuvânt este înlocuit cu textul, „Duminica este sărbătoare” după executarea comenzii „sed” de mai sus.

Mergi sus

2. Înlocuiți toate instanțele unui text într-o anumită linie a unui fișier folosind opțiunea „g”

Opțiunea „g” este utilizată în comanda „sed” pentru a înlocui toate aparițiile modelului de potrivire. Creați un fișier text numit python.txt cu următorul conținut pentru a cunoaște utilizarea opțiunii „g”. Acest fișier conține cuvântul. 'Piton' de mai multe ori.

python.txt

Python este un limbaj foarte popular.
Python este ușor de utilizat. Python este ușor de învățat.
Python este un limbaj pe mai multe platforme

Următoarea comandă va înlocui toate aparițiile „ Piton ”În a doua linie a fișierului, python.txt . Aici, 'Piton' apare de două ori în a doua linie.

$ piton de pisică.txt
$ sed„2 s / Python / perl / g”piton.txt

Ieșire:

Următoarea ieșire va apărea după rularea scriptului. Aici, Toată apariția „Python” în a doua linie este înlocuită cu „Perl”.

Mergi sus

3. Înlocuiți a doua apariție doar a unui meci pe fiecare linie

Dacă un cuvânt apare de mai multe ori într-un fișier, atunci apariția specială a cuvântului în fiecare linie poate fi înlocuită folosind comanda `sed` cu numărul de apariție. Următoarea comandă `sed` va înlocui a doua apariție a modelului de căutare în fiecare linie a fișierului, python.txt .

$ sed„s / Python / perl / g2”piton.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus. Aici, textul de căutare, „ Piton' apare de două ori numai în a doua linie și este înlocuit cu textul „ Perl ‘.

Mergi sus

4. Înlocuiți ultima apariție doar a unui meci pe fiecare linie

Creați un fișier text numit lang.txt cu următorul conținut.

lang.txt

Limbaj de programare Bash. Limbaj de programare Python. Limbaj de programare Perl.
Limbaj de marcare hipertext.
Limbaj de marcare extensibil.

$sed 's / (. * ) Programare / 1 Scripting /'lang.txt

Mergi sus

5. Înlocuiți prima potrivire dintr-un fișier cu text nou

Următoarea comandă va înlocui doar prima potrivire a modelului de căutare, „ Piton „După text, ‘Perl ‘. Aici, „1” este folosit pentru a se potrivi cu prima apariție a modelului.

$ piton de pisică.txt
$ sed'1 s / Python / perl /'piton.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus. Aici. prima apariție a „Python” în prima linie este înlocuită cu „perl”.

Mergi sus

6. Înlocuiți ultima potrivire dintr-un fișier cu text nou

Următoarea comandă va înlocui ultima apariție a modelului de căutare, 'Piton „După text, „Bash”. Aici, „$” simbolul este folosit pentru a se potrivi cu ultima apariție a modelului.

$ piton de pisică.txt
$ dar -e'$ s / Python / Bash /'piton.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus.

Mergi sus

7. Escaparea barei inversă în comenzile de înlocuire pentru a gestiona căutarea și înlocuirea căilor de fișiere

Este necesar să scăpați de bară inversă din calea fișierului pentru căutare și înlocuire. Următoarea comandă de `sed` va adăuga backslash () în calea fișierului.

$aruncat /Acasă/ubuntu/cod/perl/add.pl| sed 's; /; \ /; g'

Ieșire:

Calea fișierului, „/Home/ubuntu/code/perl/add.pl” este furnizat ca intrare în comanda `sed` și următoarea ieșire va apărea după executarea comenzii de mai sus.

Mergi sus

8. Înlocuiți calea completă a tuturor fișierelor doar cu numele fișierului fără director

Numele fișierului poate fi extras din calea fișierului foarte ușor folosind ` nume de bază` comanda. Comanda `sed` poate fi folosită și pentru a extrage numele fișierului din calea fișierului. Următoarea comandă va prelua numele fișierului numai din calea fișierului furnizată de comanda `echo`.

$aruncat „/home/ubuntu/temp/myfile.txt” | sed „s /.*///”

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus. Aici, numele fișierului, „ myfile.txt ” este tipărit ca ieșire.

Mergi sus

9. Înlocuiți textul, dar numai dacă se găsește un alt text în șir

Creați un fișier numit „ dept.txt ” cu următorul conținut pentru a înlocui orice text bazat pe alt text.

dept.txt

Lista studenților:

CSE - Număr
EEE - Număr
Civil - Cont

Două comenzi de înlocuire sunt utilizate în următoarea comandă `sed`. Aici, textul, „ Numara ‘Va fi înlocuit cu 100 în linia care conține textul, „CSE „Și textul,„ Numara' va fi înlocuit cu 70 în linia care conține modelul de căutare, „ EEE ” .

$pisicădept.txt
$sed -Și '/ CSE / s / Count / 100 /; / EEE / s / Count / 70 /; 'dept.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus.

Mergi sus

10. Înlocuiți textul, dar numai dacă un alt text nu se găsește în șir

Următoarea comandă „sed” va înlocui valoarea „Count” din linia care nu conține textul, „CSE”. dept.txt fișierul conține două rânduri care nu conțin textul, „CSE”. Asa ca ' Numara ‘Textul va fi înlocuit cu 80 în două rânduri.

$pisicădept.txt
$sed -i -Și '/ CSE /! s / Count / 80 /; 'dept.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus.

Mergi sus

11. Adăugați șir înainte și după modelul de potrivire folosind „ 1”

Secvența modelelor de potrivire a comenzii „sed” este notată cu „ 1”, „ 2” și așa mai departe. Următoarea comandă „sed” va căuta modelul, „Bash” și dacă modelul se potrivește, atunci va fi accesat prin „ 1 ′ în partea de înlocuire a textului. Aici, textul „Bash” este căutat în textul introdus și, un text este adăugat înainte și un alt text este adăugat după „ 1”.

$aruncat „Limba bash” | sed 's / (Bash ) / Learn 1 programare /'

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus. Aici, ' Învăța' textul este adăugat înainte „Bash” și ' programare Textul este adăugat după „ Bash ’.

Mergi sus

12. Ștergeți liniile potrivite

„D” opțiunea este utilizată în comanda `sed` pentru a șterge orice linie din fișier. Creați un fișier numit os.txt și adăugați următorul conținut pentru a testa funcția „D” opțiune.

cat os.txt

Windows
Linux
Android
TU

Următoarea comandă `sed` va șterge acele linii din os.txt fișier care conține textul, „OS”.

$pisicăos.txt
$sed „/ The D”os.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus.

Mergi sus

13. Ștergeți linia potrivită și 2 linii după potrivirea liniei

Următoarea comandă va șterge trei linii din fișier os.txt dacă modelul, „ Linux ” e gasit. os.txt conține textul, ‘Linux ‘În a doua linie. Deci, această linie și următoarele două linii vor fi șterse.

$sed „/ Linux /, + 2d”os.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus.

Mergi sus

14. Ștergeți toate spațiile la sfârșitul liniei de text

Folosind [:gol:] class poate fi folosit pentru a elimina spații și file din text sau conținutul oricărui fișier. Următoarea comandă va elimina spațiile de la sfârșitul fiecărei linii a fișierului, os.txt.

$pisicăos.txt
$sed 's / [[: blank:]] * $ //'os.txt

Ieșire:

os.txt conține linii goale după fiecare linie, acestea sunt șterse prin comanda `sed` de mai sus.

Mergi sus

15. Ștergeți toate liniile care au o potrivire de două ori pe linie

Creați un fișier text numit, input.txt cu următorul conținut și ștergeți acele linii ale fișierului care conține modelul de căutare de două ori.

input.txt

PHP este un limbaj de script pe partea de server.
PHP este un limbaj open-source, iar PHP este sensibil la majuscule și minuscule.
PHP este independent de platformă.

Textul „PHP” conține de două ori în a doua linie a fișierului, input.txt . Două comenzi „sed” sunt utilizate în acest exemplu pentru a elimina acele linii care conțin modelul „ php ' de două ori. Prima comandă „sed” va înlocui a doua apariție a „php” în fiecare linie cu „ dl ‘Și trimiteți ieșirea în a doua comandă` sed` ca intrare. A doua comandă „sed” va șterge acele linii care conțin textul, „ dl ‘.

$pisicăinput.txt
$sed „s / php / dl / i2; t”input.txt| sed „/ dl / d”

Ieșire:

input.txt fișierul are două linii care conțin modelul, 'Php' de două ori. Deci, următoarea ieșire va apărea după executarea comenzilor de mai sus.

Mergi sus

16. Ștergeți toate liniile care au doar spațiu alb

Selectați orice fișier care conține linii goale în conținut pentru a testa acest exemplu. input.txt fișierul creat în exemplul anterior conține două linii goale care pot fi șterse folosind următoarea comandă `sed`. Aici, „^ $” este folosit pentru a afla liniile goale din fișier, input.txt.

$pisicăinput.txt
$sed „/ ^ $ / d”input.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus.

Mergi sus

17. Ștergeți toate caracterele neprimabile

Caracterele neprimabile pot fi șterse din orice text prin înlocuirea caracterelor neprimabile cu niciunul. [: print:] clasa este utilizată în acest exemplu pentru a afla caracterele neprimabile. „ T” este un caracter neprimabil și nu poate fi analizat direct prin comanda „echo”. Pentru aceasta, caracterul „ t” este atribuit într-o variabilă, tabul $ care este utilizat într-o comandă „echo”. Ieșirea comenzii `echo` este trimisă în comanda` sed` care va elimina caracterul, „ t” din ieșire.

$filă= $„ t”
$aruncat 'Buna ziua$ tabWorld'
$aruncat 'Buna ziua$ tabWorld' | sed 's / [^ [: print:]] // g'

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus. Prima comandă `echo va imprima ieșirea cu spațiu tab și comanda` sed` va imprima ieșirea după eliminarea spațiului tab.

Mergi sus

18. Dacă există o potrivire în linie, adăugați ceva la sfârșitul liniei

Următoarea comandă va adăuga „10” la sfârșitul liniei care conține textul, „Windows” în os.txt fişier.

$pisicăos.txt
$sed „/ Windows / s / $ / 10 /”os.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzii.

Mergi sus

19. Dacă există o potrivire în linie, introduceți o linie înainte de text

Următoarea comandă `sed` va căuta textul,„ PHP este independent de platformă ” în input.txt fișier care a fost creat înainte. Dacă fișierul conține acest text în orice linie, „ PHP este un limbaj interpretat ” va fi inserat înainte de acea linie.

$pisicăinput.txt
$sed '/ PHP este independent de platformă / s / ^ / PHP este un limbaj interpretat. N /'input.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus.

Mergi sus

20. Dacă există o potrivire în linie, introduceți o linie după acea linie

Următoarea comandă `sed` va căuta textul,„ Linux ” în dosar os.txt și dacă textul există în orice linie, atunci un nou text, „ Ubuntu ‘Va fi inserat după acea linie.

$pisicăos.txt
$sed 's / Linux / & nUbuntu /'os.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus.

Mergi sus

21. Dacă nu există un meci, adăugați ceva la sfârșitul liniei

Următoarea comandă `sed` va căuta acele linii în os.txt care nu conține textul, „Linux” și adăugați textul, „ Sistem de operare ‘La sfârșitul fiecărei linii. Aici, ' $ „Simbolul este utilizat pentru a identifica linia în care noul text va fi adăugat.

$pisicăos.txt
$sed '/ Linux /! S / $ / Sistem de operare / 'os.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus. Există trei rânduri în fișierul os.txt care nu conține textul, „Linux” și noul text adăugat la sfârșitul acestor rânduri.

Mergi sus

22. Dacă nu există o potrivire, ștergeți linia

Creați un fișier numit web.txt și adăugați conținutul următor și ștergeți liniile care nu conțin modelul de potrivire. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery Următoarea comandă `sed` va căuta și șterge acele linii care nu conțin textul,„ CSS ”. $ cat web.txt $ sed ‘/ CSS /! d’ web.txt Ieșire: Următoarea ieșire va apărea după executarea comenzilor de mai sus. Există un singur rând în fișier care conține textul, „CSE”. Deci, ieșirea conține doar o linie.

Mergi sus

23. Duplicați textul potrivit după adăugarea unui spațiu după text

Următoarea comandă „sed” va căuta cuvântul „la” din fișier, python.txt iar dacă cuvântul există, atunci același cuvânt va fi inserat după cuvântul de căutare adăugând spațiu. Aici, „&” simbolul este folosit pentru a atașa textul duplicat.

$pisicăpython.txt
$sed -Și „s / to / & to / g”python.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor. Aici, cuvântul „către” este căutat în fișier, python.txt iar acest cuvânt există în a doua linie a acestui fișier. Asa de, 'la 'Cu spațiu se adaugă după textul potrivit.

Mergi sus

24. Înlocuiți o listă de șiruri cu șirul nou

Trebuie să creați două fișiere listă pentru a testa acest exemplu. Creați un fișier text numit list1.txt și adăugați următorul conținut.

lista de pisici1.txt

1001=>Jafar Ali
1023=>Nir Hossain
1067=>John michel

Creați un fișier text numit list2.txt și adăugați următorul conținut.

$ cat list2.txt

1001CSE GPA3,63
1002CSE GPA3.24
1023CSE GPA3.11
1067CSE GPA3,84

Următoarea comandă `sed` se va potrivi cu prima coloană a celor două fișiere text afișate mai sus și va înlocui textul care se potrivește cu valoarea celei de-a treia coloane a fișierului list1.txt.

$pisicălist1.txt
$pisicălist2.txt
$sed pisicălist1.txt| awk '{print' -e cu / '$ 1' / '$ 3' / '}'„<<<'`cat list2.txt`'

Ieșire:

1001, 1023 și 1067 din list1.txt fișierul se potrivește cu cele trei date ale list2.txt fișier și aceste valori sunt înlocuite cu numele corespunzătoare ale celei de-a treia coloane a list1.txt .

Mergi sus

25. Înlocuiți șirul potrivit cu un șir care conține linii noi

Următoarea comandă va prelua intrarea din comanda `echo` și va căuta cuvântul, 'Piton' in text. Dacă cuvântul există în text, atunci un nou text, „Text adăugat” va fi inserat cu linie nouă. $ echo Bash Perl Python Java PHP ASP | sed ‘s / Python / Text adăugat n /’ Ieșire: Următoarea ieșire va apărea după executarea comenzii de mai sus.

Mergi sus

26. Eliminați liniile noi din fișier și introduceți o virgulă la sfârșitul fiecărei linii

Următoarea comandă `sed` va înlocui fiecare linie nouă cu o virgulă din fișier os.txt . Aici, -Cu opțiunea este utilizată pentru a separa linia de caracter NULL.

$sed -Cu „s / n /, / g”os.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus.

Mergi sus

27. Eliminați virgulele și adăugați linie nouă pentru a împărți textul în mai multe linii

Următoarea comandă `sed` va lua ca intrare linia separată prin virgulă din comanda` echo` și va înlocui virgula cu linia nouă.

$aruncat „Kaniz Fatema, 30, lot” | sed 's /, / n/ g '

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus. Textul de intrare conține trei date separate prin virgulă, care sunt înlocuite cu linie nouă și tipărite în trei rânduri.

Mergi sus

28. Găsiți potrivirea nesensibilă la majuscule și ștergeți linia

„I” este utilizat în comanda „sed” pentru potrivirea fără majuscule și minuscule care indică ignorarea majusculelor. Următoarea comandă `sed` va căuta linia care conține cuvântul, ‘Linux ‘Și ștergeți linia din os.txt fişier.

$pisicăos.txt
$sed „/ linux / Id”os.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus. os.txt conține cuvântul, „Linux” care se potrivește cu modelul, „linux” pentru căutarea fără majuscule și minuscule și șters.

Mergi sus

29. Găsiți o potrivire nesensibilă la majuscule și înlocuiți-o cu text nou

Următoarea comandă `sed` va prelua intrarea din comanda` echo` și va înlocui cuvântul „bash” cu cuvântul „PHP”.

$aruncat „Îmi place programarea bash” | sed „s / Bash / PHP / i”

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus. Aici, cuvântul „Bash” se potrivește cu cuvântul „bash” pentru căutarea care nu face distincția între majuscule și minuscule și înlocuit cu cuvântul „PHP”.

Mergi sus

30. Găsiți potrivire nesensibilă la majuscule și majuscule și înlocuiți cu toate majusculele aceluiași text

„ U” este folosit în `sed` pentru a converti orice text în litere mari. Următoarea comandă `sed` va căuta cuvântul, ‘Linux ' în os.txt fișier și dacă cuvântul există, acesta îl va înlocui cu toate literele mari.

$pisicăos.txt
$sed 's / (linux ) / U 1 / Ig'os.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus. Cuvântul „Linux” al fișierului os.txt este înlocuit cu cuvântul „LINUX”.

Mergi sus

31. Găsiți o potrivire nesensibilă la majuscule și înlocuiți-o cu toate minusculele din același text

„ THE” este folosit în `sed` pentru a converti orice text la toate literele mici. Următoarea comandă `sed` va căuta cuvântul, „Linux” în os.txt fișier și înlocuiți cuvântul cu toate literele mici.

$pisicăos.txt
$sed 's / (linux ) / L 1 / Ig'os.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus. Cuvântul „Linux” este înlocuit cu cuvântul „Linux” aici.

Mergi sus

32. Înlocuiți toate caracterele majuscule ale textului cu caractere mici

Următoarea comandă `sed` va căuta toate caracterele majuscule din os.txt fișier și înlocuiți caracterele cu litere mici folosind „ L”.

$pisicăos.txt
$sed 's / (. * ) / L 1 /'os.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus.

Mergi sus

33. Căutați numărul în linie și adăugați orice simbol valutar înainte de număr

Creați un fișier numit items.txt cu următorul conținut.

items.txt

HDD 100
Monitor 80
Mouse 10

Următoarea comandă `sed` va căuta numărul din fiecare linie de items.txt înregistrați și adăugați simbolul monedei, „$” înainte de fiecare număr.

$pisicăitems.txt
$sed 's / ([0-9] ) / $ 1 / g'items.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus. Aici, simbolul „$” este adăugat înainte de numărul fiecărei linii.

Mergi sus

34. Adăugați virgule la numerele care au mai mult de 3 cifre

Următoarea comandă `sed` va lua un număr ca intrare din comanda` echo` și va adăuga virgulă după fiecare grup de trei cifre numărând din dreapta. Aici, „: a” indică eticheta și „ta” este utilizat pentru a itera procesul de grupare.

$aruncat „5098673” | sed -Și:la-Și 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ta'

Ieșire:

Numărul 5098673 este dat în comanda `echo`, iar comanda` sed` a generat numărul 5.098.673 prin adăugarea de virgule după fiecare grup de trei cifre.

Mergi sus

35. Înlocuiește caracterul tabului cu 4 caractere spațiale

Următoarea comandă `sed` va înlocui fiecare caracter tab ( t) cu patru caractere spațiale. Simbolul „$” este utilizat în comanda „sed” pentru a se potrivi cu caracterul filă și „g” este utilizat pentru a înlocui toate caracterele filelor.

$aruncat -Și „1 t2 t3 ' | sed$„s / t / / g”

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus.

Mergi sus

36. Înlocuiește 4 caractere spațiale consecutive cu caracter tab

Următoarea comandă va înlocui 4 caractere consecutive cu caracter tab ( t).

$aruncat -Și „1 2” | sed$„s / / t / g”

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus.

Mergi sus

37. Trunchiați toate liniile la primele 80 de caractere

Creați un fișier text numit în.txt care conține liniile mai mult de 80 de caractere pentru a testa acest exemplu.

în.txt

PHP este un limbaj de script pe partea de server.
PHP este un limbaj open-source, iar PHP este sensibil la majuscule și minuscule. PHP este independent de platformă.
Următoarea comandă `sed` va trunchia fiecare linie de în.txt fișier în 80 de caractere.

$pisicăîn.txt
$sed 's / (^. {1,80 } ). * / 1 /'în.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus. A doua linie a fișierului in.txt conține mai mult de 80 de caractere și această linie este trunchiată în ieșire.

Mergi sus

38. Căutați un regex șir și adăugați un text standard după acesta

Următoarea comandă `sed` va căuta textul,„ Buna ziua „În textul introdus și adăugați textul,„ Ioan ‘După acel text.

$aruncat 'Salut ce mai faci?' | sed 's / (hello ) / 1 John /'

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus.

Mergi sus

39. Căutați regexul șirului și adăugați text după a doua potrivire din fiecare linie

Următoarea comandă `sed` va căuta textul,„ PHP ‘În fiecare linie de input.txt și înlocuiți a doua potrivire din fiecare linie cu textul, „Text nou adăugat” .

$pisicăinput.txt
$sed 's / (PHP ) / 1 (Text nou adăugat) / 2'input.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus. Textul de căutare, „ PHP ’Apare de două ori în a doua și a treia linie a input.txt fişier. Deci, textul, „ Text nou adăugat 'Este inserat în a doua și a treia linie.

Mergi sus

40. Rularea scripturilor multi-linie `sed` dintr-un fișier

Mai multe scripturi `sed` pot fi stocate într-un fișier și toate scripturile pot fi executate împreună executând comanda` sed`. Creați un fișier numit ‘Sedcmd ‘Și adăugați următorul conținut. Aici, două fișiere „sed” sunt adăugate. Un script va înlocui textul, „ PHP ' de „ASP „Un alt script va înlocui textul,„ independent „După text,„ dependent ‘.

sedcmd

s/PHP/ASP/
s/independent/dependent/

Următoarea comandă „sed” va înlocui toate textele „PHP” și „independente” cu „ASP” și „dependente”. Aici, opțiunea ‘-f’ este utilizată în comanda `sed` pentru a executa scriptul` sed` din fișier.

$pisicăsedcmd
$sed -fsedcmd input.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus.

Mergi sus

41. Potriviți un model cu mai multe linii și înlocuiți-l cu noul text cu mai multe linii

Următoarea comandă `sed` va căuta textul cu mai multe linii, „Linux nAndroid” și dacă modelul se potrivește, atunci liniile potrivite vor fi înlocuite cu textul cu mai multe linii, ‘Ubuntu nAndroid Lollipop ‘. Aici, P și D sunt utilizate pentru prelucrarea multilinie.

$pisicăos.txt
$sed '$! N; s / Linux nAndoid / Ubuntu nAndoid Lollipop /; P; D'os.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus.

Mergi sus

42. Înlocuiți ordinea a două cuvinte dintr-un text care se potrivește cu un model

Următoarea comandă `sed` va prelua introducerea a două cuvinte din comanda` echo` și va înlocui ordinea acestor cuvinte.

$aruncat „perl python” | sed -Și 's / ([^] * ) * ([^] * ) / 2 1 /'

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus.

Mergi sus

43. Executați mai multe comenzi `sed` din linia de comandă

Opțiunea „-e” este utilizată în comanda „sed” pentru a rula mai multe scripturi „sed” din linia de comandă. Următoarea comandă `sed` va prelua un text ca intrare din comanda` echo` și va înlocui „ Ubuntu ' de ' Kubuntu ' și ' sute ' de ' Fedora ‘.

$aruncat „Ubuntu Centos Debian” | sed -Și 's / Ubuntu / Kubuntu /; s / Centos / Fedora / '

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus. Aici, „Ubuntu” și „Centos” sunt înlocuite cu „Kubuntu” și „Fedora”.

Mergi sus

44. Combinați „sed” cu alte comenzi

Următoarea comandă va combina comanda `sed` cu comanda` cat`. Prima comandă „sed” va prelua datele de la os.txt fișier și trimiteți ieșirea comenzii la a doua comandă „sed” după înlocuirea textului „Linux” cu „Fedora”. A doua comandă „sed” va înlocui textul, „Windows” cu „Windows 10”.

$pisicăos.txt| sed „s / Linux / Fedora /”| sed „s / windows / Windows 10 / i”

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus.

Mergi sus

45. Introduceți o linie goală într-un fișier

Creați un fișier numit stdlist cu următorul conținut.

stdlist

#ID #Nume
[101] -Dar
[102] -Neha

Opțiunea „G” este utilizată pentru a insera o linie goală într-un fișier. Următoarea comandă `sed` va insera linii goale după fiecare linie de stdlist fişier.

$pisicăstdlist
$sedG stdlist

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus. O linie goală este inserată după fiecare linie a fișierului.

Mergi sus

46. ​​Înlocuiți toate caracterele alfanumerice prin spațiu în fiecare linie a unui fișier.

Următoarea comandă va înlocui toate caracterele alfanumerice cu spațiul din stdlist fişier.

$pisicăstdlist
$ dar „s / [A-Za-z0-9] // g”stdlist

Ieșire:

Următoarea ieșire va apărea după executarea comenzilor de mai sus.

Mergi sus

47. Utilizați „&” pentru a imprima șiruri potrivite

Următoarea comandă va căuta cuvântul care începe cu „L” și va înlocui textul prin adăugare „Șirul potrivit este - „Cu cuvântul asociat utilizând simbolul„ & ”. Aici, „p” este utilizat pentru a imprima textul modificat.

$sed -n 's / ^ L / Șirul potrivit este - & / p'os.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus.

Mergi sus

48. Comutați perechea de cuvinte într-un fișier

Creați un fișier text numit curs.txt cu următorul conținut care conține perechea de cuvinte din fiecare rând.

curs.txt

PHP ASP
MySQL Oracle
CodeIgniter Laravel

Următoarea comandă va schimba perechea de cuvinte din fiecare linie a fișierului, curs.txt .

$sed 's / ([^] * ) * ([^] * ) / 2 1 /'curs.txt

Ieșire:

Următoarea ieșire va apărea după comutarea perechii de cuvinte din fiecare linie.

Mergi sus

49. Scrieți cu majuscule primul caracter al fiecărui cuvânt

Următoarea comandă `sed` va prelua textul de intrare din comanda` echo` și va converti primul caracter al fiecărui cuvânt într-o literă mare.

$aruncat „Îmi place programarea bash” | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus. Textul introdus, îmi place programarea bash, este tipărit așa cum îmi place Programarea Bash după ce scriem cu majusculă primul cuvânt.

Mergi sus

50. Imprimați numerele de linie ale fișierului

Simbolul „=” este folosit comanda „sed” pentru a imprima numărul liniei înainte de fiecare linie a unui fișier. Următoarea comandă va imprima conținutul os.txt fișier cu număr de linie.

$sed '='os.txt

Ieșire:

Următoarea ieșire va apărea după executarea comenzii de mai sus. Există patru rânduri os.txt fişier. Deci, numărul liniei este tipărit înainte de fiecare linie a fișierului.

Mergi sus

Concluzie:

Utilizările diferite ale comenzii `sed` sunt explicate în acest tutorial folosind exemple foarte simple. Ieșirea tuturor scripturilor `sed` menționate aici sunt generate temporar și conținutul fișierului original a rămas neschimbat. Dar dacă doriți, puteți modifica fișierul original utilizând opțiunea –i sau –in-place a comenzii `sed. Dacă sunteți un nou utilizator Linux și doriți să aflați utilizările de bază ale comenzii `sed` pentru a efectua diferite tipuri de sarcini de manipulare a șirurilor, atunci acest tutorial vă va ajuta. După citirea acestui tutorial, sperăm, orice utilizator va primi conceptul clar despre funcțiile comenzii `sed`.

întrebări frecvente

La ce se folosește comanda sed?

Comanda sed are o serie de utilizări diferite. Acestea fiind spuse, principala utilizare este înlocuirea cuvintelor dintr-un fișier sau găsirea și înlocuirea.

Cel mai bun lucru despre sed este că puteți căuta un cuvânt într-un fișier și îl puteți înlocui, dar niciodată nu trebuie să deschideți fișierul - sed face totul pentru dvs.!

Pe lângă aceasta, poate fi folosit și pentru ștergere. Tot ce trebuie să faceți este să tastați cuvântul pe care doriți să-l găsiți, să îl înlocuiți sau să îl ștergeți în sed și îl aduce pentru dvs. - puteți alege apoi să înlocuiți acel cuvânt sau să ștergeți toate urmele cuvântului din fișierul dvs.

sed este un instrument fantastic pentru a putea înlocui lucruri precum adresele IP și orice altceva sensibil, pe care altfel nu l-ați dori să introduceți într-un fișier. sed este o necesitate pentru orice inginer software!

Ce este S și G în comanda sed?

În termenii săi simpli, funcția S care poate fi utilizată în sed înseamnă pur și simplu „substitut”. După tastarea S puteți înlocui sau înlocui orice doriți - doar tastarea S va înlocui doar prima apariție a cuvântului pe o linie.

Prin urmare, dacă aveți o propoziție sau o linie care o menționează de mai multe ori, funcția S nu este ideală, deoarece va substitui doar prima apariție. Puteți specifica un model pentru ca S să înlocuiască cuvintele la fiecare două apariții.

Specificarea lui G la sfârșitul comenzii sed va face o înlocuire globală (asta înseamnă G). Având în vedere acest lucru, dacă specificați G, acesta va înlocui fiecare apariție a cuvântului pe care l-ați ales, mai degrabă decât prima apariție pe care o face S.

Cum rulez un script sed?

Puteți rula un script sed în mai multe moduri, dar cel mai comun este pe linia de comandă. Aici puteți specifica doar sed și fișierul pe care doriți să utilizați comanda.

Acest lucru vă permite să utilizați sed în acel fișier, permițându-vă să găsiți, să ștergeți și să înlocuiți după cum este necesar.

Puteți să-l utilizați și într-un script shell, și în acest fel puteți transmite orice doriți scriptului, iar acesta va rula comanda Găsire și înlocuire pentru dvs. Acest lucru este util pentru a nu dori să specificați date extrem de sensibile într-un script, astfel încât să le puteți transmite ca variabilă

Rețineți că, desigur, acest lucru este disponibil numai pe Linux și, prin urmare, va trebui să vă asigurați că aveți o linie de comandă Linux pentru a rula scriptul sed.