Un ghid rapid pentru utilizarea comenzilor Sed în Linux

O introducere la comanda Linux sed

Sistemul de operare Linux utilizează comenzi terminale pentru a lucra cu sistemul de fișiere al unui computer. Utilizarea primară a comenzii Linux sed , care este scurtă pentru editorul de flux, este de a modifica fiecare linie a unui fișier sau a unui flux prin înlocuirea părților specificate ale liniei. Face modificări de bază ale unui fișier sau intrări dintr-o conductă. De exemplu, spuneți că aveți un fișier numit "songs.text" care conține aceste linii:

1, Justin Timberlake, Titlu 545, Pret $ 6.30 2, Taylor Swift, Titlu 723, Pret $ 7.90 3, Mick Jagger, Titlu 610, Pret $ 7.90 4, Lady Gaga, Titlu 118, Preț $ 6.30 5, Johnny Cash, Titlu 482, Preț $ 6.50 6, Elvis Presley, Titlu 335, Preț $ 6.30 7, John Lennon, Titlu 271, Preț $ 7.90

Efectuarea de înlocuire a textului cu Sed

Dacă doriți să modificați toate aparițiile prețurilor de la 6.30 dolari la 7.30 dolari, puteți face modificările folosind comanda sed în acest fel:

sed 's / 6.30 / 7.30 /' songs.txt> songs2.txt

Acest cod face schimbarea și scrie fișierul modificat în "songs2.txt". Fișierul de ieșire conține:

1, Justin Timberlake, Titlu 545, Pret $ 7.30 2, Taylor Swift, Titlu 723, Pret $ 7.90 3, Mick Jagger, Titlu 610, Pret $ 7.90 4, Lady Gaga, Titlu 118, Pret $ 7.30 5, Johnny Cash, Titlu 482, Pret $ 6.50 6, Elvis Presley, Titlu 335, Preț $ 7.30 7, John Lennon, Titlu 271, Preț $ 7.90

Dacă doriți să înlocuiți toate aparițiile "Cash" cu "Trash", utilizați:

sed 's / Cash / Coș de gunoi /' songs.txt> songs2.txt

care creează un fișier cu conținut:

1, Justin Timberlake, Titlu 545, Pret $ 7: 30 2, Taylor Swift, Titlu 723, Pret $ 7.90 3, Mick Jagger, Titlu 610, Pret $ 7.90 4, Lady Gaga, Titlul 118, Pret $ 7: 30 5, Johnny Trash, Titlu 482, Preț $ 6.50 6, Elvis Presley, Titlu 335, Preț $ 7: 30 7, John Lennon, Titlu 271, Preț $ 7.90

Filtrarea cu comanda Sed

Sed este, de asemenea, frecvent utilizat pentru a filtra liniile dintr-un fișier sau un flux. De exemplu, dacă doriți doar să vedeți liniile care conțin "John", utilizați:

sed-n '/ John / p' songs.txt> johns.txt

care scrie următoarele linii în fișierul johns.txt:

5, Johnny Trash, Titlu 482, Pret $ 6.50 7, John Lennon, Titlu 271, Pret $ 7.90