Sed: Pag-aaral ng Shell Scripting Gamit ang Sed Terminal Command
Ang utos na "sed" sa Mga Libreng Operating System ng uri ng GNU / Linux ito ay isang napaka-maraming nalalaman na utos, dahil sa siya namang Ito ay itinuturing na isang text editor na nakatuon sa "daloy" sa halip na "interactive" bilang mga karaniwang mga, dahil tumatanggap ito ng isang file o karaniwang input bilang input, pagkatapos ay pinoproseso ang bawat linya at ang resulta ay ipinadala sa karaniwang output. Na ibig sabihin, Pinapayagan kami ng SED (Stream EDitor) na baguhin ang nilalaman ng iba't ibang mga linya ng isang file batay sa isang serye ng mga utos o isang file ng utos.
Pangkalahatan, ang utos «sed» ay ginagamit bilang isang filter, dahil binabasa nito ang bawat linya ng iyong data entry at pagkatapos ay nagsasagawa ng mga hiniling na pagkilos na karaniwang binabasa, kinuha, binabago at ipinapakita o nai-save. Bagaman ang lakas nito ay ganoon bukod dito pinapayagan kami sa isang komportableng paraan, upang tanggalin ang mga linya, talaan o upang mapalitan ang mga string ng character sa loob ng mga linya ng isang file.
Panimula sa utos na "sed"
Sa ibang mga nakaraang publication sa DesdeLinux pinag-usapan at ipinakita namin ang mga halimbawa sa paggamit ng utos na ito, tulad ng: Paano tanggalin ang mga partikular na linya mula sa isang file ... y Sa Terminal: Paggamit ng Mga Regular na Pagpapahayag II: Mga Kapalit, kaya sa oras na ito ay direkta tayong makakakita ng kaunting mas advanced at tulad ng praktikal na mga halimbawa ng paggamit nito.
Karaniwan ang utos «sed» ay may sumusunod na syntax:
sed comandos_sed archivo
Saan "Command_sed" tumutugma sa isa o higit pang mga pagtutukoy tungkol sa kung ano ang gagawin sa mga linyang nabasa mula "archive".
Ang isang mas malawak na paggamit ay nag-iiwan sa amin ng sumusunod na syntax:
sed [-ns] '[direccion] instruccion argumentos'
Saan:

Mga praktikal na halimbawa
Maglista ng Mga File / Folder sa isang landas
Kapaki-pakinabang na linya ng utos na maaaring magamit upang ilista ang nilalaman ng isang tinukoy na X path at pagkatapos ay tuklasin / mabilang / salain ang isang hinanap na item at ipahiwatig ang isang kasunod na aksyon na isasagawa.
ls -l | awk '{ print $NF }' | sed 1d
Halimbawa:

Ang iba pang variant na gumagamit ng "sed" na utos ay lubhang kapaki-pakinabang:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename

Lumikha ng isang pagkakasunud-sunod ng numero
Ipakita sa screen o i-save sa isang file ang isang numerong pagkakasunud-sunod (o anumang iba pang input) nilikha ngunit sa pahalang (linear) at hindi patayong form na maaaring mabasa sa ibang pagkakataon para sa iba pang mga proseso.
seq 100|tr '\n' ' '|sed 's, $,\n,g'

Ang parehong halimbawa ay maaaring gawin sa pamamagitan ng pagsasama ng utos «uhaw " sa "Printf" tulad ng ipinakita sa ibaba:
printf '%s ' {1..100}|sed 's/ $/\n/'

Tanggalin ang mga file na may mga pagbubukod
Sinusuri ang landas ng isang file system na naghahanap ng mga pattern ng mga file upang maibukod at pagkatapos ay tatanggalin ang natitirang nilalaman. Napaka kapaki-pakinabang para sa tumpak at maingat na paglilinis.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm

Lumikha ng isang virtual na MAC address
Ang hakbang na ito ay maaaring maging kapaki-pakinabang para sa seguridad ng computer o mga gawain sa proteksyon kapag nagba-browse ng mga mapanganib na site o nagsasagawa ng mga gawain sa pag-hack.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC

Ang parehong epekto ay maaaring makamit sa pamamagitan ng paggamit ng "sed" na utos kasama ang iba pang mga utos, tulad ng ipinakita sa ibaba:
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
Halimbawa:

Pansamantalang baguhin ang Terminal Prompt
Makakatulong ito sa amin na pansamantalang magsingit ng mga parameter sa aming prompt na maaaring maging kapaki-pakinabang habang nagsasagawa kami ng isang espesyal na aktibidad. Sa halimbawang ito babaguhin lamang namin ang paraan ng pagpapakita ng prompt.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "

Pamahalaan ang output ng "ps" Command
Napaka praktikal na utos ng utos upang payagan ang pasadyang pag-format ng output ng "ps" na utos, iyon ay, na nakuha mula sa Terminal Process Manager.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
Halimbawa:

Maaari itong mailapat para sa mga proseso ayon sa porsyento ng natupok na memorya:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Ang mga halimbawang ito ng mga linya ng utos na gumagamit ng utos na "sed" Inaasahan kong napaki-pakinabang mo ito. At nagsisilbi sila upang magamit nang direkta mula sa console o hindi direkta sa pamamagitan ng pagpasok ng mga ito sa isang script (awtomatikong gawain).
Sa susunod na post sa Shell Scripting susuriin namin ang iba pang mga utos.
Kung nais mong malaman nang kaunti pa tungkol sa utos na "sed" bisitahin ang link na ito "Tutorial at Maikling Gabay para sa Unix at Linux"O"Pangunahing paggamit»At kung nais mong matuto nang higit pa tungkol sa Shell Scripting sa aming sariling Blog, maaari mong tingnan ang aming iba pang mga pahayagan sa paksa, sa pamamagitan ng pag-click dito: Pag-script sa FromLinux.