Kommandoen "sed" i gratis operativsystemer af GNU / Linux-typen er det en meget alsidig kommando, da det igen Det betragtes som en teksteditor, der er orienteret mod "flow" i stedet for "interaktiv" som den typiske, da den accepterer en fil eller standardindgang som input, behandler hver linje, og resultatet sendes til standardoutput. Det vil sige, SED (Stream EDitor) giver os mulighed for at ændre indholdet af de forskellige linjer i en fil baseret på en række kommandoer eller en kommandofil.
Generelt bruges kommandoen «sed» som et filter, da den læser hver linje i din dataindtastning og derefter udfører de ønskede handlinger, der normalt læses, udpakkes, ændres og vises eller gemmes. Selvom dens magt er sådan, at derudover tillader det os på en behagelig måde at slette linjer, registrere eller udskifte tegnstrenge inden for linjerne i en fil.
Introduktion til kommandoen “sed”
Allerede i andre tidligere udgivelser i DesdeLinux vi har talt og vist eksempler på brugen af nævnte kommando, såsom: Sådan slettes specifikke linjer fra en fil ... y Med terminal: Brug af regulære udtryk II: udskiftninger, så denne gang vil vi direkte se lidt mere avancerede og lige så praktiske eksempler, der bruger det.
Grundlæggende har kommandoen «sed» følgende syntaks:
sed comandos_sed archivo
hvor "Command_sed" svarer til en eller flere specifikationer for, hvad man skal gøre med de linjer, der læses fra "arkiv".
En mere omfattende brug giver os følgende syntaks:
sed [-ns] '[direccion] instruccion argumentos'
Hvor:
Praktiske eksempler
Liste filer / mapper i en sti
Nyttig kommandolinje, der kan bruges til at liste indholdet af en bestemt X-sti og derefter registrere / tælle / filtrere et søgt element og angive en efterfølgende handling, der skal udføres.
ls -l | awk '{ print $NF }' | sed 1d
Eksempel:
Denne anden variant ved hjælp af kommandoen "sed" er meget nyttig:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename
Opret en nummerserie
Vis på skærmen eller gem i en fil en numerisk rækkefølge (eller enhver anden input), der er oprettet, men på en vandret (lineær) og ikke lodret måde, som senere kan læses til andre processer.
seq 100|tr '\n' ' '|sed 's, $,\n,g'
Det samme eksempel kan gøres ved at kombinere kommandoen «tørst" med "Printf" som vist nedenfor:
printf '%s ' {1..100}|sed 's/ $/\n/'
Slet filer med undtagelser
Sigt gennem en filsystemsti på udkig efter mønstre af filer, der skal ekskluderes, og derefter slettes resten af indholdet. Meget nyttig til præcis og omhyggelig rengøring.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm
Opret en virtuel MAC-adresse
Dette trin kan være nyttigt til computersikkerheds- eller beskyttelsesopgaver, når du gennemsøger farlige websteder eller udfører hackingsopgaver.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC
Den samme effekt kan opnås ved at bruge kommandoen "sed" sammen 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:
Skift terminalprompt midlertidigt
Dette kan hjælpe os med midlertidigt at indsætte parametre i vores prompt, der kan være nyttige for os, mens vi udfører en særlig aktivitet. I dette eksempel ændrer vi kun den måde, hvorpå prompten vises.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "
Administrer output fra kommandoen "ps"
Meget praktisk kommandorækkefølge for at tillade formatering af output fra kommandoen «ps», det vil sige hvad der opnås fra Terminal Process Manager.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
Eksempel:
Dette kan anvendes til processer i henhold til procentdelen af forbrugt hukommelse:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Jeg håber, at disse eksempler på kommandolinjen ved hjælp af kommandoen "sed" vil være meget nyttige. Og de tjener til at blive brugt direkte fra konsollen eller indirekte ved at indsætte dem i et script (automatiseret opgave).
I det næste indlæg på Shell Scripting vil vi udforske andre kommandoer.
Hvis du vil lære lidt mere om kommandoen "sed", besøg dette link "Vejledning og kort vejledning til Unix og Linux"Eller"Grundlæggende brug»Og hvis du vil lære mere om Shell Scripting i vores egen blog, kan du se på vores andre publikationer om emnet ved at klikke her: Scripting DesdeLinux.