Învățarea comenzilor linux sed

Învățarea comenzilor Linux: sed

1. Introducere

Bine ați venit în cea de-a doua parte a seriei noastre, dedicată sed, versiunea GNU. Există mai multe versiuni de sed care sunt disponibile pe diferite platforme, dar ne vom concentra pe GNU sed versiunea 4.x. Mulți dintre dvs. au auzit de sed, sau l-au folosit deja, cel mai probabil ca un instrument de înlocuire. Dar aceasta este doar una dintre utilizările sed, și vom încerca să vă arătăm toate aspectele legate de utilizarea acestui utilitar. Numele său înseamnă "Stream EDitor", iar cuvântul "stream" (stream) în acest caz poate însemna un fișier, un canal sau pur și simplu stdin. Sperăm că aveți deja cunoștințe de bază despre Linux și dacă ați lucrat deja cu expresii regulate sau cel puțin știți ce este, totul va fi mult mai ușor pentru dvs. Volumul articolului nu permite includerea în el a unui ghid complet al expresiilor regulate, în schimb vom suna conceptele de bază și vom da un număr mare de exemple de utilizare a sed.







2. Instalarea

Nu este prea mult de spus. Mai degrabă, aveți deja toate sed, deoarece este folosit de diferite scripturi de sistem, precum și utilizatorii de Linux care doresc să îmbunătățească performanța lor. Puteți afla care versiune de instalare ați instalat cu comanda:

În sistemul meu, această comandă arată că am instalat GNU sed 4.2.1, plus un link către pagina de pornire a programului și alte informații utile. Pachetul este numit "sed" indiferent de distribuție, cu excepția Gentoo, unde este implicit prezent.

3. Concepte

4. Expresii regulate

Din moment ce comenzile (script-urile) lui Sed rămân un mister, considerăm că cititorii noștri trebuie să înțeleagă conceptele de bază și să nu copiați și să lipiți comenzi a căror valori nu le înțeleg. Atunci când o persoană dorește să înțeleagă ce expresii regulate sunt, cuvântul cheie este "potrivire", sau mai exact, "model de potrivire". De exemplu, într-un raport pentru departamentul dvs., ați scris numele lui Nick, care se referă la arhitectul rețelei. Dar Nick a plecat și John la înlocuit, așa că acum trebuie să-l înlocuiți pe Nick cu John. Dacă fișierul raport este numit report.txt, trebuie să executați următoarea comandă:







În mod implicit, sed utilizează stdout, puteți utiliza operatorul de redirecționare, așa cum se arată în exemplul de mai sus. Acesta este un exemplu foarte simplu, dar am ilustrat câteva aspecte: căutăm pentru toate modelele potrivite "Nick" și îl înlocuim cu "John" în toate cazurile. Rețineți că sed face căutare sensibilă la minuscule, deci aveți grijă și verificați fișierul de ieșire pentru a vă asigura că toate înlocuirile au fost executate. Exemplul de mai sus poate fi scris astfel:

Ei bine, spuneți, dar unde este expresia regulată? Da, am vrut să arătăm mai întâi un exemplu, iar acum începe cea mai interesantă parte.
Dacă nu sunteți sigur dacă ați scris "nick" sau "Nick" și doriți să furnizați ambele cazuri, trebuie să utilizați comanda sed '/ Nick / nick / John / g'. Linia verticală este valoarea pe care trebuie să știți dacă studiul C, este expresia se va potrivi cu „nick“ sau „Nick“. Așa cum veți vedea mai jos, canalul poate fi folosit în alte moduri, dar sensul rămâne același. Alți operatori sunt utilizate pe scară largă în expresii regulate - este cea care corespunde unei repetare a caracterului anterior zero sau o dată, „*“, „?“ (De exemplu flavou r se va potrivi aromă și gust?) - zero sau mai multe ori, „+“ - unul sau de mai multe ori. "^" se potrivește cu începutul liniei și "$" - invers. Dacă sunteți utilizator al vi sau vim, multe lucruri vă par familiare. La urma urmei, aceste utilități, împreună cu awk și C, își au rădăcinile în primele zile ale UNIX. Nu vom spune mai multe despre acest subiect, așa cum este mai ușor de înțeles semnificația acestor simboluri pe exemple, dar ar trebui să știți că există diferite implementări de expresii regulate: POSIX, POSIX Extended, Perl, precum și diferite implementări de expresii regulate neclare, garantându-vă o durere de cap .

5. Exemple de utilizare a sed







Articole similare

Trimiteți-le prietenilor: