Comanda "sed" în sistemele de operare libere de tip GNU / Linux este o comandă foarte versatilă, deoarece la rândul său Este considerat un editor de text orientat spre „flux” în loc de „interactiv” ca și cele tipice, deoarece acceptă un fișier sau o intrare standard ca intrare, apoi procesează fiecare linie și rezultatul este trimis la ieșirea standard. Adică, SED (Stream EDitor) ne permite să modificăm conținutul diferitelor linii ale unui fișier pe baza unei serii de comenzi sau a unui fișier de comandă.
În general, comanda «sed» este utilizată ca filtru, deoarece citește fiecare rând al introducerii de date și apoi efectuează acțiunile solicitate care sunt de obicei citite, extrase, modificate și afișate sau salvate. Deși puterea sa este de așa natură încât în plus, ne permite într-un mod confortabil, să ștergem liniile, să înregistrăm sau să înlocuim șirurile de caractere din liniile unui fișier.
Introducere în comanda „sed”
Ya en otras publicaciones anteriores en DesdeLinux hemos hablado y mostrados ejemplos sobre el uso de dicho comando, cum ar fi: Cum să ștergeți anumite linii dintr-un fișier ... y Cu Terminal: Utilizarea Expressions Regular II: Înlocuiri, deci de data aceasta vom vedea în mod direct un pic mai avansat și la fel de exemple practice folosindu-l.
Practic comanda «sed» are următoarea sintaxă:
sed comandos_sed archivo
unde „Command_sed” corespunde uneia sau mai multor specificații despre ceea ce trebuie făcut cu liniile citite "Arhiva".
O utilizare mai extinsă ne lasă următoarea sintaxă:
sed [-ns] '[direccion] instruccion argumentos'
În cazul în care:
Exemple practice
Listează fișierele / folderele dintr-o cale
Linie de comandă utilă care poate fi utilizată pentru a lista conținutul unei căi X indicate și apoi pentru a detecta / număra / filtra un element căutat și pentru a indica o acțiune ulterioară care trebuie efectuată.
ls -l | awk '{ print $NF }' | sed 1d
Exemplu:
Această altă variantă care utilizează comanda „sed” este foarte utilă:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename
Creați o secvență numerică
Afișați pe ecran sau salvați într-un fișier o secvență numerică (sau orice altă intrare) creată, dar în formă orizontală (liniară) și nu verticală, care poate fi citită ulterior pentru alte procese.
seq 100|tr '\n' ' '|sed 's, $,\n,g'
Același exemplu se poate face prin combinarea comenzii «sete" cu „Printf” așa cum se arată mai jos:
printf '%s ' {1..100}|sed 's/ $/\n/'
Ștergeți fișierele cu excluderi
Trecerea printr-o cale a sistemului de fișiere caută modele de fișiere pentru a le exclude și apoi șterge restul conținutului. Foarte util pentru o curățare precisă și atentă.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm
Creați o adresă MAC virtuală
Acest pas poate fi util pentru securitatea computerului sau sarcinile de protecție atunci când răsfoiți site-uri periculoase sau efectuați sarcini de hacking.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC
Același efect poate fi obținut utilizând comanda „sed” împreună cu alte comenzi, așa cum se arată mai jos:
openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
od -An -N10 -x /dev/random | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'
od /dev/urandom -w6 -tx1 -An|sed -e 's/ //' -e 's/ /:/g'|head -n 1
Exemplu:
Schimbați temporar promptul terminal
Acest lucru ne poate ajuta să introducem temporar în prompt parametrii care ne pot fi de folos în timp ce desfășurăm o activitate specială. În acest exemplu, vom schimba doar modul în care este afișată solicitarea.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "
Gestionați ieșirea comenzii „ps”
Comandă de comandă foarte practică pentru a permite formatarea ieșirii comenzii «ps», adică ceea ce se obține de la Terminal Process Manager.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
Exemplu:
Acest lucru poate fi aplicat proceselor în funcție de procentul de memorie consumată:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Aceste exemple de linii de comandă care utilizează comanda „sed” sper că ți se pare foarte util. Și servesc pentru a fi utilizate direct din consolă sau indirect prin inserarea lor într-un script (sarcină automată).
În următoarea postare despre Shell Scripting vom explora alte comenzi.
Dacă doriți să aflați mai multe despre comanda „sed” vizitați acest link ”Tutorial și Ghid scurt pentru Unix și Linux"Sau"Utilizare de bază»Și dacă doriți să aflați mai multe despre Shell Scripting în propriul nostru blog, puteți arunca o privire la celelalte publicații pe acest subiect, făcând clic aici: Scripting DesdeLinux.