Naredba "sed" u besplatnim operativnim sustavima tipa GNU / Linux to je vrlo svestrana naredba, jer zauzvrat Smatra se uređivačem teksta orijentiranim na "protok" umjesto na "interaktivni" kao tipični, budući da prihvaća datoteku ili standardni ulaz kao ulaz, tada obrađuje svaki redak i rezultat se šalje na standardni izlaz. To će reći, SED (Stream Editor) nam omogućava da modificiramo sadržaj različitih redova datoteke na osnovu niza naredbi ili naredbene datoteke.
Načelno se naredba «sed» koristi kao filter, budući da čita svaki redak vašeg unosa podataka, a zatim izvodi tražene radnje koje se obično čitaju, izdvajaju, mijenjaju i prikazuju ili spremaju. Iako je njegova snaga takva da osim toga, omogućava nam na udoban način brisanje linija, snimanje ili zamjenu nizova znakova unutar redaka datoteke.
Uvod u naredbu "sed"
Već u drugim prethodnim publikacijama u DesdeLinux govorili smo i pokazali primjere o korištenju navedene komande, kao što su: Kako izbrisati određene redove iz datoteke ... y Sa terminalom: Korištenje regularnih izraza II: Zamjene, pa ćemo ovaj put izravno vidjeti malo naprednije i jednako praktične primjere koji ga koriste.
U osnovi naredba «sed» ima sljedeću sintaksu:
sed comandos_sed archivo
Gde "Command_sed" odgovara jednoj ili više specifikacija o tome šta raditi sa redovima iz kojih se čita "arhiva".
Opsežnija upotreba ostavlja nam sljedeću sintaksu:
sed [-ns] '[direccion] instruccion argumentos'
Gde:
Praktični primjeri
Popis datoteka / mapa na putanji
Korisna naredbena linija koja se može koristiti za popis sadržaja naznačene X puta, a zatim otkrivanje / brojanje / filtriranje pretraživane stavke i ukazivanje na naknadnu radnju koju treba izvršiti.
ls -l | awk '{ print $NF }' | sed 1d
Primjer:
Ova druga varijanta koja koristi naredbu "sed" je vrlo korisna:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename
Stvorite niz brojeva
Prikažite na ekranu ili spremite u datoteku numerički niz (ili bilo koji drugi ulaz) stvoren, ali u vodoravnom (linearnom), a ne vertikalnom obliku koji se kasnije može čitati za druge procese.
seq 100|tr '\n' ' '|sed 's, $,\n,g'
Isti se primjer može učiniti kombiniranjem naredbe «žeđ " con "Printf" kao što je prikazano ispod:
printf '%s ' {1..100}|sed 's/ $/\n/'
Izbrišite datoteke s izuzecima
Pregledavanje putanje sistema datoteka tražeći obrasce datoteka koje će se izuzeti, a zatim izbrisati ostatak sadržaja. Vrlo korisno za precizno i pažljivo čišćenje.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm
Stvorite virtualnu MAC adresu
Ovaj korak može biti koristan za zadatke računalne sigurnosti ili zaštite prilikom pregledavanja opasnih web lokacija ili izvršavanja zadataka hakiranja.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC
Isti se efekt može postići korištenjem naredbe "sed" zajedno s ostalim naredbama, kao što je prikazano dolje:
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
Primjer:
Privremeno promijenite upit terminala
To nam može pomoći da privremeno umetnemo parametre u naš upit koji nam mogu biti korisni dok provodimo posebnu aktivnost. U ovom primjeru promijenit ćemo samo način na koji se prikazuje upit.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "
Upravljajte izlazom naredbe "ps"
Vrlo praktična naredba naredbe kako bi se omogućilo formatiranje izlaza naredbe «ps», odnosno onoga što se dobiva od upravitelja procesa terminala.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
Primjer:
To se može primijeniti na procese prema postotku utrošene memorije:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Ovi primjeri naredbenih linija pomoću naredbe "sed" nadam se da će vam biti vrlo korisni. A služe za upotrebu izravno s konzole ili indirektno umetanjem u skriptu (automatizirani zadatak).
U sljedećem postu o Shell Scriptingu istražit ćemo druge naredbe.
Ako želite saznati malo više o naredbi "sed", posjetite ovaj link "Vodič i kratki vodič za Unix i Linux"Ili"Osnovna upotreba»A ako želite saznati više o Shell skriptiranju na našem vlastitom blogu, možete pogledati naše ostale publikacije na tu temu, klikom ovdje: Skriptiranje DesdeLinux.