Sedas: „Shell“ scenarijų mokymasis naudojant „Sed“ terminalo komandą

Sedas: „Shell“ scenarijų mokymasis naudojant „Sed“ terminalo komandą

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:

SED komandos naudojimo formatas

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:

1 pavyzdys: SED komanda - „Shell Scripting“

Š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

4 pavyzdys: „SED“ komanda „Shell Scripting“

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'

2 pavyzdys: „SED“ komanda „Shell Scripting“

Tą patį pavyzdį galima padaryti sujungus komandą «troškulys “ su „Printf“ kaip parodyta žemiau:

printf '%s ' {1..100}|sed 's/ $/\n/'

3 pavyzdys: „SED“ komanda „Shell Scripting“

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

5 pavyzdys: SED komanda „Shell_Scripting“

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:

7 pavyzdys: „SED“ komanda „Shell Scripting“

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' )\\> "

8 pavyzdys. „SED“ komanda „Shell Scripting“

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:

9 pavyzdys: „SED“ komanda „Shell Scripting“

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“.


Pridėti kaip pageidaujamą šaltinį