Sedas: „Shell“ scenarijų mokymasis naudojant „Sed“ terminalo komandą
Komanda „sed“ GNU / Linux tipo nemokamose operacinėse sistemose tai yra labai universali komanda, nes savo ruožtu Tai laikoma teksto redaktoriumi, orientuotu į „srautą“, o ne į „interaktyvų“ kaip tipinį, nes jis priima failą ar standartinį įvestį kaip įvestį, tada apdoroja kiekvieną eilutę ir rezultatas siunčiamas į standartinę išvestį. Tai reiškia, „SED“ („Stream“ redaktorius) leidžia mums modifikuoti skirtingų failo eilučių turinį remiantis komandų serija arba komandų rinkmena.
Paprastai komanda „sed“ naudojama kaip filtras, nes jis nuskaito kiekvieną jūsų duomenų įvesties eilutę ir tada atlieka prašomus veiksmus, kurie paprastai yra skaitomi, išskleidžiami, modifikuojami ir rodomi ar išsaugomi. Nors jo galia tokia be to, tai leidžia mums patogiai ištrinti eilutes, įrašus ar pakeisti simbolių eilutes failo eilutėse.
Įvadas į komandą „sed“
Kituose ankstesniuose „DesdeLinux“ leidiniuose mes kalbėjome ir parodėme šios komandos naudojimo pavyzdžius, pavyzdžiui: Kaip ištrinti konkrečias eilutes iš failo ... y Su terminalu: naudojant įprastus posakius II: pakeitimai, todėl šį kartą mes tiesiogiai pamatysime šiek tiek pažangesnius ir praktiškus pavyzdžius, kaip jį naudoti.
Iš esmės komanda «sed» turi tokią sintaksę:
sed comandos_sed archivo
Kur „Command_sed“ atitinka vieną ar kelias specifikacijas, ką daryti su eilutėmis, iš kurių skaitoma „archyvas“.
Platesnis naudojimas palieka šią sintaksę:
sed [-ns] '[direccion] instruccion argumentos'
Kur:

Praktiniai pavyzdžiai
Pateikite failų / aplankų sąrašą kelyje
Naudinga komandinė eilutė, kurią galima naudoti nurodyto X kelio turiniui surašyti, tada aptikti / suskaičiuoti / filtruoti ieškomą elementą ir nurodyti tolesnį veiksmą.
ls -l | awk '{ print $NF }' | sed 1d
pavyzdys:

Šis kitas variantas, naudojant komandą „sed“, yra labai naudingas:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename

Sukurkite skaičių seką
Rodyti ekrane arba išsaugoti faile sukurtą skaitinę seką (ar bet kurią kitą įvestį), bet horizontalią (linijinę), o ne vertikalią formą, kurią vėliau galima perskaityti kitiems procesams.
seq 100|tr '\n' ' '|sed 's, $,\n,g'

Tą patį pavyzdį galima padaryti sujungus komandą «troškulys “ su „Printf“ kaip parodyta žemiau:
printf '%s ' {1..100}|sed 's/ $/\n/'

Ištrinkite failus su išskyrimais
Tikrindami failų sistemos kelią ieškodami failų šablonų, kuriuos norite išskirti, ir tada ištrinkite likusį turinį. Labai naudinga tiksliam ir kruopščiam valymui.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm

Sukurkite virtualų MAC adresą
Šis žingsnis gali būti naudingas atliekant kompiuterio saugos ar apsaugos užduotis naršant pavojingose svetainėse ar atliekant įsilaužimo užduotis.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC

Tą patį efektą galima pasiekti naudojant komandą „sed“ kartu su kitomis komandomis, kaip parodyta žemiau:
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
pavyzdys:

Laikinai pakeiskite terminalo eilutę
Tai gali padėti mums į savo raginimą laikinai įtraukti parametrus, kurie gali būti mums naudingi, kai vykdome specialią veiklą. Šiame pavyzdyje pakeisime tik raginimo rodymo būdą.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "

Tvarkykite komandos „ps“ išvestį
Labai praktiška komandų tvarka, leidžianti formuoti „ps“ komandos išvestį, tai yra tai, kas gaunama iš terminalo procesų tvarkyklės.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
pavyzdys:

Tai gali būti taikoma procesams pagal sunaudotos atminties procentą:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Šie komandų eilutės, naudojančios komandą „sed“, pavyzdžiai, tikiuosi, kad jums tai labai naudinga. Jie naudojami naudoti tiesiogiai iš konsolės arba netiesiogiai, įterpiant juos į scenarijų (automatinė užduotis).
Kitame „Shell Scripting“ įraše mes nagrinėsime kitas komandas.
Jei norite sužinoti šiek tiek daugiau apie komandą „sed“, apsilankykite šioje nuorodoje “Pamoka ir trumpas „Unix“ ir „Linux“ vadovas„Arba“Pagrindinis naudojimas»Ir jei norite sužinoti daugiau apie„ Shell Scripting “mūsų pačių tinklaraštyje, galite peržiūrėti kitus mūsų leidinius šia tema, spustelėdami čia: Scenarijai „FromLinux“.