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:

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:

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

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'

Samma exempel kan göras genom att kombinera kommandot «törst" med "Printf" enligt nedanstående:
printf '%s ' {1..100}|sed 's/ $/\n/'

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

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:

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

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:

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.