Sed: Lära sig Shell Scripting med Sed Terminal Command

Sed: Lära sig Shell Scripting med Sed Terminal Command

Sed: Lära sig Shell Scripting med Sed Terminal Command

Kommandot "sed" i fria operativsystem av GNU / Linux-typen är det ett mycket mångsidigt kommando, eftersom det i sin tur Det anses vara en textredigerare inriktad på "flöde" istället för "interaktiv" som de typiska, eftersom den accepterar en fil eller standardinmatning som inmatning, bearbetar varje rad och resultatet skickas till standardutmatningen. Det vill säga, SED (Stream EDitor) tillåter oss att ändra innehållet i de olika raderna i en fil baserat på en serie kommandon eller en kommandofil.

Generellt används kommandot «sed» som ett filter, eftersom den läser varje rad i din datainmatning och sedan utför de begärda åtgärderna som vanligtvis läses, extraheras, ändras och visas eller sparas. Även om dess kraft är sådan att Dessutom tillåter det oss på ett bekvämt sätt att radera rader, registrera eller ersätta teckensträngar inom raderna i en fil.

Introduktion till kommandot "sed"

I andra tidigare publikationer i DesdeLinux har vi redan pratat och visat exempel på användningen av nämnda kommando, såsom: Hur man tar bort specifika rader från en fil ... y Med terminal: Använda reguljära uttryck II: utbyten, så den här gången kommer vi direkt se lite mer avancerade och lika praktiska exempel som använder den.

I grund och botten har kommandot «sed» följande syntax:

sed comandos_sed archivo

var "Command_sed" motsvarar en eller flera specifikationer om vad man ska göra med raderna som läses från "arkiv".

En mer omfattande användning ger oss följande syntax:

sed [-ns] '[direccion] instruccion argumentos'

Var:

SED-kommandos format

Praktiska exempel

Lista filer / mappar i en sökväg

Användbar kommandorad som kan användas för att lista innehållet i en angiven X-sökväg och sedan upptäcka / räkna / filtrera ett sökat objekt och ange en efterföljande åtgärd som ska utföras.

ls -l | awk '{ print $NF }' | sed 1d

Exempelvis:

Exempel 1: SED-kommando - Shell Scripting

Denna andra variant med kommandot "sed" är mycket användbart:

find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename

Exempel 4: SED-kommando för Shell Scripting

Skapa en nummerserie

Visa på skärmen eller spara i en fil en numerisk sekvens (eller någon annan inmatning) skapad men på ett horisontellt (linjärt) och inte vertikalt sätt som senare kan läsas för andra processer.

seq 100|tr '\n' ' '|sed 's, $,\n,g'

Exempel 2: SED-kommando för Shell Scripting

Samma exempel kan göras genom att kombinera kommandot «törst" med "Printf" enligt nedanstående:

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

Exempel 3: SED-kommando för Shell Scripting

Ta bort filer med undantag

Siktar genom en filsystemsökväg och letar efter filer av filer som ska uteslutas och tar sedan bort resten av innehållet. Mycket användbart för exakt och noggrann rengöring.

find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm

Exempel 5: SED-kommando för Shell_Scripting

Skapa en virtuell MAC-adress

Detta steg kan vara användbart för datasäkerhets- eller skyddsuppgifter när du surfar på farliga webbplatser eller utför hackningsuppgifter.

MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC

Samma effekt kan uppnås genom att använda kommandot "sed" i kombination med andra kommandon, som visas nedan:

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

Exempelvis:

Exempel 7: SED-kommando för Shell Scripting

Ändra Terminal Prompt tillfälligt

Detta kan hjälpa oss att tillfälligt infoga parametrar i vår fråga som kan vara användbara för oss när vi utför en speciell aktivitet. I det här exemplet ändrar vi bara sättet att meddelandet visas.

export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "

Exempel 8. SED-kommando för Shell Scripting

Hantera utdata från kommandot "ps"

Mycket praktisk kommandorad för att möjliggöra formatering av utdata från kommandot «ps», det vill säga vad som erhålls från Terminal Process Manager.

sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"

Exempelvis:

Exempel 9: SED-kommando för Shell Scripting

Detta kan användas för processer enligt procentandelen minne som förbrukas:

sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"

Jag hoppas att dessa exempel på kommandoraden med kommandot "sed" kommer att vara mycket användbara. Och de används för att användas direkt från konsolen eller indirekt genom att infoga dem i ett skript (automatiserad uppgift).

I nästa inlägg på Shell Scripting kommer vi att utforska andra kommandon.

Om du vill lära dig lite mer om kommandot "sed" besök den här länken "Handledning och kort guide för Unix och Linux"Eller"Grundläggande användning»Och om du vill lära dig mer om Shell Scripting i vår egen bloggkan du ta en titt på våra andra publikationer om ämnet genom att klicka här: Skriptning i FromLinux.


Lägg till som prioriterad källa