Kommandoen "sed" i gratis operativsystemer av GNU / Linux-typen er det en veldig allsidig kommando, siden i sin tur Det regnes som en tekstredigerer som er orientert om å "flyte" i stedet for "interaktiv" som den typiske, siden den aksepterer en fil eller standardinngang som inndata, behandler hver linje og resultatet blir sendt til standardutdata. Det er å si, SED (Stream EDitor) lar oss endre innholdet på de forskjellige linjene i en fil basert på en rekke kommandoer eller en kommandofil.
Generelt brukes kommandoen «sed» som filter, siden den leser hver linje i dataoppføringen din og deretter utfører de forespurte handlingene som vanligvis blir lest, hentet ut, modifisert og vist eller lagret. Selv om dens kraft er slik at i tillegg lar det oss på en behagelig måte slette linjer, poster eller erstatte tegnstrenger innenfor linjene i en fil.
Introduksjon til “sed” -kommandoen
Ya en otras publicaciones anteriores en DesdeLinux hemos hablado y mostrados ejemplos sobre el uso de dicho comando, for eksempel: Slik sletter du spesifikke linjer fra en fil ... y Med terminal: bruk av regulære uttrykk II: erstatninger, så denne gangen vil vi se litt mer avanserte og like praktiske eksempler direkte på den.
I utgangspunktet har kommandoen «sed» følgende syntaks:
sed comandos_sed archivo
Hvor "Command_sed" tilsvarer en eller flere spesifikasjoner om hva du skal gjøre med linjene som leses fra "arkiv".
En mer omfattende bruk gir oss følgende syntaks:
sed [-ns] '[direccion] instruccion argumentos'
Hvor:
Praktiske eksempler
Liste filer / mapper i en bane
Nyttig kommandolinje som kan brukes til å liste innholdet i en spesifisert X-bane og deretter oppdage / telle / filtrere et søkt element og indikere en påfølgende handling som skal utføres.
ls -l | awk '{ print $NF }' | sed 1d
Eksempel:
Denne andre varianten ved hjelp av "sed" -kommandoen er veldig nyttig:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename
Lag en tallrekke
Vis på skjermen eller lagre i en fil en numerisk sekvens (eller annen inngang) opprettet, men på en horisontal (lineær) og ikke vertikal måte som senere kan leses for andre prosesser.
seq 100|tr '\n' ' '|sed 's, $,\n,g'
Det samme eksemplet kan gjøres ved å kombinere kommandoen «tørst" med "Printf" som vist under:
printf '%s ' {1..100}|sed 's/ $/\n/'
Slett filer med unntak
Gransking av en filsystembane på jakt etter mønstre av filer som skal ekskluderes, og deretter slettes resten av innholdet. Veldig nyttig for presis og forsiktig rengjøring.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm
Opprett en virtuell MAC-adresse
Dette trinnet kan være nyttig for datasikkerhets- eller beskyttelsesoppgaver når du surfer på farlige nettsteder eller utfører hackingsoppgaver.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC
Den samme effekten kan oppnås ved å bruke kommandoen "sed" i forbindelse med andre kommandoer, som vist nedenfor:
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
Eksempel:
Endre terminalprompt midlertidig
Dette kan hjelpe oss med midlertidig å sette inn parametere i ledeteksten som kan være nyttige for oss mens vi utfører en spesiell aktivitet. I dette eksemplet vil vi bare endre måten ledeteksten vises på.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "
Administrer utdataene fra "ps" -kommandoen
Veldig praktisk kommandorekkefølge for å tillate formatering av utdata fra «ps» -kommandoen, det vil si det som er hentet fra Terminal Process Manager.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
Eksempel:
Dette kan brukes for prosesser i henhold til prosentandelen av minnet som forbrukes:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Jeg håper disse eksemplene på kommandolinjen ved å bruke kommandoen "sed" vil være veldig nyttige. Og de brukes til å brukes direkte fra konsollen eller indirekte ved å sette dem inn i et skript (automatisert oppgave).
I neste innlegg på Shell Scripting vil vi utforske andre kommandoer.
Hvis du vil lære litt mer om kommandoen "sed" besøk denne lenken "Veiledning og kort guide for Unix og Linux"Eller"Grunnleggende bruk»Og hvis du vil lære mer om Shell Scripting i vår egen blogg, kan du se på de andre publikasjonene våre om emnet, ved å klikke her: Skripting DesdeLinux.