Ukaz "sed" v brezplačnih operacijskih sistemih tipa GNU / Linux je zelo vsestranski ukaz, saj po drugi strani Šteje se za urejevalnik besedil, ki je kot tipičen usmerjen v "pretok" namesto v "interaktivni", saj kot vhod sprejme datoteko ali standardni vhod, nato obdela vsako vrstico in rezultat se pošlje v standardni izhod. Se pravi, SED (Stream Editor) nam omogoča spreminjanje vsebine različnih vrstic datoteke na podlagi niza ukazov ali ukazne datoteke.
Na splošno se ukaz «sed» uporablja kot filter, saj prebere vsako vrstico vnosa podatkov in nato izvede zahtevana dejanja, ki jih običajno preberemo, izvlečemo, spremenimo in prikažemo ali shranimo. Čeprav je njegova moč takšna, da poleg tega nam omogoča udobno brisanje vrstic, snemanje ali zamenjavo nizov znakov znotraj vrstic datoteke.
Uvod v ukaz "sed"
Že v drugih prejšnjih objavah v DesdeLinux smo govorili in pokazali primere o uporabi omenjenega ukaza, kot so: Kako izbrisati določene vrstice iz datoteke ... y S terminalom: Uporaba regularnih izrazov II: Zamenjave, zato bomo tokrat neposredno videli nekoliko naprednejše in prav tako praktične primere njegove uporabe.
V bistvu ima ukaz «sed» naslednjo skladnjo:
sed comandos_sed archivo
kjer je "Command_sed" ustreza eni ali več specifikacijam o tem, kaj storiti s črtami, ki jih beremo "arhiv".
Obširnejša uporaba nam pušča naslednjo skladnjo:
sed [-ns] '[direccion] instruccion argumentos'
Kje:
Praktični primeri
Seznam datotek / map na poti
Uporabna ukazna vrstica, s katero lahko navedete vsebino določene poti X in nato zaznate / preštete / filtrirate iskani element in navedete nadaljnje dejanje, ki ga je treba izvesti.
ls -l | awk '{ print $NF }' | sed 1d
Primer:
Ta druga različica z uporabo ukaza "sed" je zelo koristna:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename
Ustvari zaporedje števil
Prikažite na zaslonu ali shranite v datoteko ustvarjeno številčno zaporedje (ali kateri koli drug vhod), vendar vodoravno (linearno) in ne navpično, da ga je mogoče pozneje prebrati za druge procese.
seq 100|tr '\n' ' '|sed 's, $,\n,g'
Isti primer lahko storimo s kombiniranjem ukaza «žeja" z "Printf" kot je prikazano spodaj:
printf '%s ' {1..100}|sed 's/ $/\n/'
Izbrišite datoteke z izključitvami
Prebiranje poti datotečnega sistema v iskanju vzorcev datotek za izključitev in nato brisanje preostale vsebine. Zelo uporabno za natančno in skrbno čiščenje.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm
Ustvarite navidezni naslov MAC
Ta korak je lahko koristen za naloge računalniške varnosti ali zaščite pri brskanju po nevarnih mestih ali pri izvajanju vdorov.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC
Enak učinek lahko dosežemo z uporabo ukaza "sed" v povezavi z drugimi ukazi, kot je prikazano spodaj:
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
Primer:
Začasno spremenite poziv terminala
To nam lahko pomaga, da začasno vstavimo v naš poziv parametre, ki so nam lahko koristni med izvajanjem posebne dejavnosti. V tem primeru bomo spremenili samo način prikaza poziva.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "
Upravljajte z izhodom ukaza "ps"
Zelo praktičen ukazni vrstni red, ki omogoča oblikovanje izhoda ukaza «ps», to je tisto, kar dobimo od Terminal Process Manager.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
Primer:
To se lahko uporablja za procese glede na odstotek porabljenega pomnilnika:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Ti primeri ukaznih vrstic z uporabo ukaza "sed" upam, da se vam zdijo zelo koristni. Uporabljajo se lahko za neposredno uporabo konzole ali posredno z vstavljanjem v skript (avtomatizirano opravilo).
V naslednjem prispevku o Shell Scripting bomo raziskali druge ukaze.
Če želite izvedeti nekaj več o ukazu "sed", obiščite to povezavo "Vadnica in kratek vodnik za Unix in Linux"Ali"Osnovna uporaba»In če želite izvedeti več o Shell Scripting v našem blogu, si lahko ogledate naše druge publikacije na to temo, tako da kliknete tukaj: Skriptiranje DesdeLinux.