SED, cunoscut și ca editor de flux, este un instrument foarte util. Este folosit pentru a căuta un anumit cuvânt sau un model și, ulterior, face ceva cu cuvântul sau modelul sau, cu alte cuvinte, îl transformă. În Windows, SED este cunoscut și sub numele de funcțiile „găsiți” și „înlocuiți”. SED vine cu Ubuntu, deci nu este nevoie să instalați nimic; începe doar să-l folosești. În acest tutorial, vă vom spune cum să utilizați SED sau editorul de flux.
Comanda „S”.
Cea mai importantă dintre toate comenzile din SED sau din editorul de flux este comanda „s”. „S” înseamnă înlocuitor. Sintaxa este următoarea:
‘s / expresie regulată / înlocuire / steaguri
Deci, să folosim un fișier numit „file.txt” pentru exemple. Iată cum arată „file.txt” dacă îl pisezi:
Să folosim un exemplu pentru a arăta cum funcționează comanda „s”:
dar ‘s / primul / lună / i’ file.txt > luna.txt
Când este dată o astfel de expresie, înseamnă:
-
- s – Înseamnă înlocuitor.
- primul – Cuvântul de căutat în fișierul numit „file.txt”.
- lună – Cuvântul „primul” este înlocuit cu cuvântul „lună”.
- i – Înseamnă ignorare. Vom ignora această parte pentru prima dată.
- file.txt – Fișierul în care SED va căuta modelul sau cuvântul. În acest caz, cuvântul „primul” va fi:
- moon.txt – Când cuvântul „primul” este înlocuit cu cuvântul „lună”, acesta va fi salvat sub „lună.txt”.
căutat în file.txt
Deci, ce se întâmplă aici? SED înlocuiește cuvântul „primul” cu „lună” doar în primă instanță (adică, dacă cuvântul „primul” apare de mai multe ori, nu îl va înlocui peste tot sau nu îl va înlocui de mai multe ori). Fișierul pe care îl caută se numește „file.txt” și odată ce transformarea sau înlocuirea este făcută, va fi salvat sub „moon.txt”.
Cam asa arata:
Vă rugăm să nu uitați să puneți „/” acolo unde trebuie. Dacă omiteți un „/”, SED nu va accepta comanda.
Până acum, am înlocuit doar cuvântul „primul” cu „întâlnit” cu înlocuirea. Acum, să presupunem că vrem să înlocuim cuvântul „linie” (care apare de multe ori – de patru ori pentru a fi mai precis) în a treia linie cu cuvântul „înger”.
Cum vizam în mod specific acea a treia linie? Folosim următoarea comandă:
dar '3s / linia / înger / i’ file.txt > înger.txt
Deci, ce tocmai sa întâmplat aici? Ei bine, „3” specifică numărul liniei. Prin urmare, merge la a treia linie. Apoi, înlocuiți cuvântul „line” cu „înger” în fișierul numit „file.txt” și salvați fișierul transformat ca „angel.txt”.
Ce se întâmplă dacă vrem să înlocuim sau să transformăm liniile „3” și „4”?
Rețineți că în exemplul anterior, am folosit steagul „i” pentru ignorare. Acum, folosim steagul „g” pentru global.
Să folosim un exemplu pentru a arăta cum funcționează comanda „s”:
dar ‘s / linia / soare / g’ fișier.txt > soare.txt
Când este dată o astfel de expresie, înseamnă:
„G” înseamnă global. Amintiți-vă că în primul exemplu, când folosim steagul „i”, există doar o singură înlocuire. Acum că am adăugat un „g” pentru global, înseamnă înlocuitor peste tot. Deci, în loc să spună prima linie, a doua linie, a treia linie și ultima linie, spune primul soare, al doilea soare, al treilea soare și ultimul soare. Înlocuiește linia de cuvinte din întregul fișier (pretutindeni) cu cuvântul „soare”.
Acum, ce se întâmplă dacă vrem să selectăm o singură linie pe baza unui cuvânt pe care îl conține? Ei bine, putem vedea că ultima linie a „file.txt” are cuvântul „last” în ea. Acum, să presupunem că vrem „Aceasta este ultima linie. Aceasta este ultima propoziție.” propoziție să devină „Aceasta este ultima fantomă. Aceasta este ultima propoziție.”
Scriem următoarele:
dar ' / ultimul / s / linia / fantomă / ’ fișier.txt > fantomă.txt
„Ultimul” de aici îi spune SED să caute linia care are cuvântul „ultimul” și apoi să înlocuiască cuvântul „linie” cu „fantomă” în acea linie.
Acum, să presupunem că vrem să facem invers. Să presupunem că dorim ca fiecare rând fără cuvântul „ultimul” să aibă cuvântul „linie” schimbat în „fantomă”. Să scriem următoarele:
După cum puteți vedea aici, fiecare linie, cu excepția ultimei (care conține cuvântul „ultimul”), are cuvântul „linie” înlocuit cu cuvântul „fantomă”.
Putem face acest lucru și cu numerele de rând:
În acest caz, liniile 3 și 4 sunt omise, dar fiecare altă linie are cuvântul „linie” înlocuit cu cuvântul „noapte”.
Comenzi multiple
Acum, ce se întâmplă dacă ai avea mai multe comenzi? Ați prefera să o faceți pe rând sau pe toate deodată și să vă economisiți timp și muncă?
Ce se întâmplă dacă dorim să schimbăm cuvântul „primul” cu „zi”, „al doilea” cu „noapte” și „restul” cu „fantomă”? Folosim punctul și virgulă pentru a face acest lucru. Nu uitați să puneți punct și virgulă la sfârșit!
Vă rugăm să rețineți că nu trebuie neapărat să puneți steagul „i” sau steagul „ignora”, dar trebuie neapărat să puneți slash-ul (/) după expresia de transformare.
Acum, să verificăm cu un exemplu:
dar ‘s / primul / zi / ; s / al doilea / noapte / ; s / al treilea / fantomă / ; s / ultimul / fantomă / ;’ fișier.txt > combinație.txt
Concluzie
Editorul de flux sau SED este o modalitate de a selecta un cuvânt sau un model și de a-l transforma. Este de fapt echivalentul din linia de comandă al funcțiilor „găsiți” și „înlocuiți” ale ferestrei. Comanda SED poate deveni foarte complicată, dar dacă știți măcar elementele de bază, sunteți gata să o preluați! SED este de fapt un instrument foarte puternic, cu multe funcții. Deși nu le putem acoperi pe toate într-un singur tutorial, am acoperit elementele de bază ale SED. În esență, am învățat cum să transformăm un anumit cuvânt folosind comanda „s” unde „s” înseamnă înlocuitor. Putem substitui cuvintele cu alte cuvinte, alegem selectiv o linie unde va avea loc substituția sau chiar o anulăm. Oricum, aceasta este partea cea mai ușoară despre SED.
Codare fericită!