Sed: Učenie skriptovania pomocou príkazu Sed Terminal
Príkaz „sed“ vo slobodných operačných systémoch typu GNU / Linux je to veľmi univerzálny príkaz Považuje sa za textový editor zameraný na „tok“ namiesto na „interaktívny“ ako typický, pretože prijíma súbor alebo štandardný vstup ako vstup, potom spracuje každý riadok a výsledok sa odošle na štandardný výstup. To znamená, SED (Stream EDitor) nám umožňuje upravovať obsah rôznych riadkov súboru na základe série príkazov alebo príkazového súboru.
Spravidla sa ako filter používa príkaz «sed», pretože prečíta každý riadok zadaného údaja a potom vykoná požadované akcie, ktoré sa zvyčajne čítajú, extrahujú, upravujú a zobrazujú alebo ukladajú. Aj keď jeho sila je taká, že navyše nám umožňuje pohodlným spôsobom mazať riadky, záznamy alebo nahrádzať reťazce znakov v riadkoch súboru.
Úvod do príkazu „sed“
V ďalších predchádzajúcich publikáciách v DesdeLinuxe sme hovorili a ukazovali príklady použitia tohto príkazu, ako napríklad: Ako odstrániť konkrétne riadky zo súboru ... y S terminálom: Používanie regulárnych výrazov II: Náhrady, takže tentokrát sa priamo dočkáme trochu pokročilejších a rovnako praktických príkladov jeho použitia.
Príkaz «sed» má v zásade nasledujúcu syntax:
sed comandos_sed archivo
kde "Command_sed" zodpovedá jednej alebo viacerým špecifikáciám, čo robiť s riadkami, z ktorých sa číta „archív“.
Rozsiahlejšie použitie nám ponecháva nasledujúcu syntax:
sed [-ns] '[direccion] instruccion argumentos'
Kde:

Praktické príklady
Zoznam súborov / priečinkov na ceste
Užitočný príkazový riadok, ktorý možno použiť na vypísanie obsahu označenej cesty X a následnú detekciu / počítanie / filtrovanie hľadanej položky a na označenie následnej akcie, ktorá sa má vykonať.
ls -l | awk '{ print $NF }' | sed 1d
príklad:

Tento ďalší variant používajúci príkaz "sed" je veľmi užitočný:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename

Vytvorte číselnú postupnosť
Zobrazte na obrazovke alebo uložte do súboru číselnú sekvenciu (alebo akýkoľvek iný vstup) vytvorenú, ale horizontálnym (lineárnym) a nie vertikálnym spôsobom, ktorý je možné neskôr prečítať pre iné procesy.
seq 100|tr '\n' ' '|sed 's, $,\n,g'

Rovnaký príklad je možné vykonať kombináciou príkazu «smäd “ s "Printf" ako je uvedené nižšie:
printf '%s ' {1..100}|sed 's/ $/\n/'

Odstráňte súbory s vylúčením
Prechádzanie cestou systému súborov, hľadanie vzorov súborov, ktoré sa majú vylúčiť, a následné odstránenie zvyšku obsahu. Veľmi užitočné pre presné a starostlivé čistenie.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm

Vytvorte virtuálnu adresu MAC
Tento krok môže byť užitočný pri úlohách zabezpečenia alebo ochrany počítača pri prehliadaní nebezpečných stránok alebo pri vykonávaní hackerských úloh.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC

Rovnaký efekt je možné dosiahnuť použitím príkazu „sed“ v spojení s ďalšími príkazmi, ako je uvedené nižšie:
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
príklad:

Dočasne zmeňte príkazový riadok terminálu
To nám môže pomôcť dočasne vložiť do našej výzvy parametre, ktoré nám môžu byť užitočné pri vykonávaní špeciálnej činnosti. V tomto príklade zmeníme iba spôsob zobrazenia výzvy.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "

Spravujte výstup príkazu „ps“
Veľmi praktické poradie príkazov, ktoré umožňuje formátovanie výstupu príkazu «ps», teda to, čo sa získa z aplikácie Terminal Process Manager.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
príklad:

To možno použiť na procesy podľa percenta spotrebovanej pamäte:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Tieto príklady príkazových riadkov pomocou príkazu "sed", dúfam, že sú pre vás veľmi užitočné. Slúžia na priame použitie z konzoly alebo nepriamo ich vložením do skriptu (automatizovaná úloha).
V nasledujúcom príspevku o Shell Scripting preskúmame ďalšie príkazy.
Ak sa chcete dozvedieť niečo viac o príkaze „sed“, navštívte tento odkaz.Tutorial and Brief Guide for Unix and Linux„Alebo“Základné použitie»A ak sa chcete dozvedieť viac informácií o skriptovaní Shell v našom vlastnom blogu, môžete sa pozrieť na naše ďalšie publikácie týkajúce sa tejto témy kliknutím sem: Skriptovanie z FromLinuxu.