Sed: Shell-scripts leren met behulp van de Sed Terminal-opdracht

Sed: Shell-scripts leren met behulp van de Sed Terminal-opdracht

Sed: Shell-scripts leren met behulp van de Sed Terminal-opdracht

Het commando "sed" in vrije besturingssystemen van het GNU / Linux-type is het een zeer veelzijdige opdracht, omdat het op zijn beurt Het wordt beschouwd als een teksteditor die gericht is op "flow" in plaats van op "interactief" zoals de typische, aangezien het een bestand of standaardinvoer als invoer accepteert, verwerkt vervolgens elke regel en het resultaat wordt naar standaarduitvoer verzonden. Het is te zeggen, Met SED (Stream EDitor) kunnen we de inhoud van de verschillende regels van een bestand wijzigen op basis van een reeks commando's of een commandobestand.

Over het algemeen wordt het commando «sed» als filter gebruikt, aangezien het elke regel van uw gegevensinvoer leest en vervolgens de gevraagde acties uitvoert die gewoonlijk worden gelezen, geëxtraheerd, gewijzigd en weergegeven of opgeslagen. Hoewel zijn kracht zo is Bovendien stelt het ons in staat om op een comfortabele manier regels, records te verwijderen of tekenreeksen binnen de regels van een bestand te vervangen.

Inleiding tot het "sed" commando

Al in andere eerdere publicaties in DesdeLinux we hebben gesproken en voorbeelden getoond over het gebruik van het genoemde commando, zoals: Hoe u specifieke regels uit een bestand verwijdert ... y Met Terminal: reguliere expressies gebruiken II: vervangingen, dus deze keer zullen we direct een beetje meer geavanceerde en net zo praktische voorbeelden zien die het gebruiken.

In principe heeft het commando "sed" de volgende syntaxis:

sed comandos_sed archivo

waarin "Command_sed" komt overeen met een of meer specificaties over wat te doen met de regels waaruit wordt gelezen "archief".

Een uitgebreider gebruik geeft ons de volgende syntaxis:

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

Waar:

SED-opdrachtgebruiksformaat

Praktische voorbeelden

Lijst met bestanden / mappen in een pad

Handige opdrachtregel die kan worden gebruikt om de inhoud van een gespecificeerd X-pad weer te geven en vervolgens een gezocht item te detecteren / tellen / filteren en een volgende actie aan te geven die moet worden uitgevoerd.

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

voorbeeld:

Voorbeeld 1: SED-opdracht - Shell Scripting

Deze andere variant met het "sed" commando is erg handig:

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

Voorbeeld 4: SED-opdracht voor Shell Scripting

Maak een nummerreeks

Geef op het scherm weer of bewaar in een bestand een numerieke reeks (of een andere invoer) die is gemaakt maar op een horizontale (lineaire) en niet verticale manier die later kan worden gelezen voor andere processen.

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

Voorbeeld 2: SED-opdracht voor Shell Scripting

Hetzelfde voorbeeld kan worden gedaan door het commando «dorst" met "Printf" zoals hieronder weergegeven:

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

Voorbeeld 3: SED-opdracht voor Shell Scripting

Verwijder bestanden met uitsluitingen

Een bestandssysteempad onderzoeken op zoek naar patronen van bestanden die moeten worden uitgesloten en vervolgens de rest van de inhoud verwijderen. Zeer handig voor een nauwkeurige en zorgvuldige reiniging.

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

Voorbeeld 5: SED-opdracht voor Shell_Scripting

Maak een virtueel MAC-adres

Deze stap kan handig zijn voor computerbeveiliging of beschermingstaken wanneer u door gevaarlijke sites bladert of hacktaken uitvoert.

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

Hetzelfde effect kan worden bereikt door het "sed" commando te gebruiken in combinatie met andere commando's, zoals hieronder getoond:

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

voorbeeld:

Voorbeeld 7: SED-opdracht voor Shell Scripting

Wijzig tijdelijk de Terminal-prompt

Dit kan ons helpen om tijdelijk parameters in onze prompt in te voegen die nuttig voor ons kunnen zijn terwijl we een speciale activiteit uitvoeren. In dit voorbeeld zullen we alleen de manier wijzigen waarop de prompt wordt weergegeven.

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

Voorbeeld 8. SED-opdracht voor Shell Scripting

Beheer de uitvoer van het "ps" -commando

Zeer praktische opdrachtvolgorde om de opmaak van de uitvoer van het "ps" -commando mogelijk te maken, dat wil zeggen, wat wordt verkregen van de Terminal Process Manager.

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

voorbeeld:

Voorbeeld 9: SED-opdracht voor Shell Scripting

Dit kan worden toegepast voor processen op basis van het percentage verbruikt geheugen:

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

Deze voorbeelden van opdrachtregels met het commando "sed" Ik hoop dat je het erg handig vindt. En ze dienen om direct vanaf de console te worden gebruikt of indirect door ze in een script in te voegen (geautomatiseerde taak).

In de volgende post over Shell Scripting zullen we andere commando's onderzoeken.

Als je wat meer wilt weten over het commando "sed", bezoek dan deze link "Zelfstudie en korte handleiding voor Unix en Linux"Of"Basisgebruik»En als je meer wilt weten over Shell Scripting in onze eigen Blogkunt u onze andere publicaties over dit onderwerp bekijken door hier te klikken: Scripten DesdeLinux.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.