Sed: Shell-komentosarjojen oppiminen Sed-terminaalikomennolla

Sed: Shell-komentosarjojen oppiminen Sed-terminaalikomennolla

Sed: Shell-komentosarjojen oppiminen Sed-terminaalikomennolla

Komento "sed" GNU / Linux-tyyppisissä ilmaisissa käyttöjärjestelmissä se on erittäin monipuolinen komento, koska puolestaan Sitä pidetään tekstieditorina, joka on tarkoitettu "virtaukselle" eikä "vuorovaikutteiselle" tyypillisiksi, koska se hyväksyy tiedoston tai vakiosyötteen syötteeksi, käsittelee sitten jokaisen rivin ja tulos lähetetään vakiotulosteeseen. Toisin sanoen, SED (Stream EDitor) antaa meille mahdollisuuden muokata tiedoston eri rivien sisältöä komentosarjan tai komentotiedoston perusteella.

Yleensä komentoa «sed» käytetään suodattimena, koska se lukee jokaisen tietueesi rivin ja suorittaa sitten pyydetyt toiminnot, jotka yleensä luetaan, puretaan, muokataan ja näytetään tai tallennetaan. Vaikka sen voima on sellainen Lisäksi se antaa meille mahdollisuuden mukavasti poistaa rivejä, tietueita tai korvata merkkijonot tiedoston rivillä.

Johdanto "sed" -komentoon

Jo muissa aiemmissa julkaisuissa v DesdeLinux olemme puhuneet ja näyttäneet esimerkkejä mainitun komennon käytöstä, kuten: Tiettyjen rivien poistaminen tiedostosta ... y Päätteellä: Säännöllisten lausekkeiden II käyttäminen: Korvaukset, joten tällä kertaa näemme suoraan hieman kehittyneempiä ja aivan käytännön esimerkkejä sen käytöstä.

Pohjimmiltaan komennolla "sed" on seuraava syntakse:

sed comandos_sed archivo

jossa "Command_sed" vastaa yhtä tai useampaa eritelmää siitä, mitä tehdä luetuille riveille "arkisto".

Laajempi käyttö jättää meille seuraavan syntaksin:

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

Missä:

SED-komentokäytön muoto

Käytännön esimerkkejä

Luettele tiedostot / kansiot polulle

Hyödyllinen komentorivi, jota voidaan käyttää määritetyn X-polun sisällön luettelointiin ja sitten etsiä / laskea / suodattaa haettu kohde ja osoittaa myöhempi suoritettava toiminto.

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

esimerkiksi:

Esimerkki 1: SED-komento - Shell-komentosarjat

Tämä toinen variantti, jossa käytetään "sed" -komentoa, on erittäin hyödyllinen:

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

Esimerkki 4: SED-komento Shell Scriptingille

Luo numerosarja

Näytä näytöllä tai tallenna tiedostoon luotu numeerinen sekvenssi (tai mikä tahansa muu tulo), mutta vaakasuoralla (lineaarisella) eikä pystysuoralla tavalla, joka voidaan myöhemmin lukea muille prosesseille.

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

Esimerkki 2: SED-komento Shell Scriptingille

Sama esimerkki voidaan tehdä yhdistämällä komento «jano" kanssa "Printf" kuten alla:

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

Esimerkki 3: SED-komento Shell Scriptingille

Poista poissulkemiset tiedostot

Siivilöi tiedostojärjestelmän polkua etsimällä poissuljettavia tiedostomalleja ja poista sitten loput sisällöstä. Erittäin hyödyllinen tarkkaan ja huolelliseen puhdistukseen.

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

Esimerkki 5: SED-komento Shell_Scriptingille

Luo virtuaalinen MAC-osoite

Tämä vaihe voi olla hyödyllinen tietoturva- tai suojaustehtävissä, kun selaat vaarallisia sivustoja tai suoritat hakkerointitehtäviä.

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

Sama vaikutus voidaan saavuttaa käyttämällä "sed" -komentoa yhdessä muiden komentojen kanssa, kuten alla on esitetty:

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

esimerkiksi:

Esimerkki 7: SED-komento Shell Scriptingille

Muuta tilapäisesti terminaalin kehotetta

Tämä voi auttaa meitä lisäämään väliaikaisesti parametreja, jotka voivat olla hyödyllisiä meille, kun suoritamme erityistoimintaa. Tässä esimerkissä muutamme vain kehotteen näyttötapaa.

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

Esimerkki 8. SED-komento Shell Scriptingille

Hallitse "ps" -komennon lähtöä

Erittäin käytännöllinen komentojärjestys, joka sallii «ps» -komennon lähdön muotoilun, ts. Päätelaitteen prosessinhallinnasta saatavan.

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

esimerkiksi:

Esimerkki 9: SED-komento Shell Scriptingille

Tätä voidaan soveltaa prosesseihin kulutetun muistin prosenttiosuuden mukaan:

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

Nämä esimerkit komentoriveistä, joissa käytetään komentoa "sed", toivon, että pidät siitä erittäin hyödyllisenä. Ja niitä käytetään käytettäväksi suoraan konsolista tai epäsuorasti lisäämällä ne komentosarjaan (automaattinen tehtävä).

Seuraavassa Shell Scripting -viestissä tutkimme muita komentoja.

Jos haluat oppia lisää komennosta "sed", siirry tähän linkkiin "Opetusohjelma ja lyhyt opas Unixille ja Linuxille"Tai"Peruskäyttö»Ja jos haluat lisätietoja Shell Scriptingistä omassa blogissamme, voit tutustua muihin aiheeseen liittyviin julkaisuihimme napsauttamalla tätä: Käsikirjoitus DesdeLinux.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.