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ä:
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:
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
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'
Sama esimerkki voidaan tehdä yhdistämällä komento «jano" kanssa "Printf" kuten alla:
printf '%s ' {1..100}|sed 's/ $/\n/'
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
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:
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' )\\> "
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:
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.