15 Gündelik Linux ulgam dolandyryş meseleleri üçin peýdaly sed buýruklar we maslahatlar


Her ulgam dolandyryjysy her gün ýönekeý tekst faýllary bilen iş salyşmaly. Käbir bölümleri nädip görmelidigini, sözleri nädip çalyşmalydygyny we şol faýllardan mazmuny nädip süzüp boljakdygyny bilmek, Google gözlegini geçirmezden size zerur endiklerdir.

Bu makalada belli akym redaktory sed-i gözden geçireris we ýokarda agzalan maksatlara ýetmek üçin ulanmak üçin 15 maslahat we ş.m. paýlaşarys.

1. Resminamanyň bir hataryny görmek

Kelle we guýruk ýaly gurallar faýlyň aşagyny ýa-da ýokarsyny görmäge mümkinçilik berýär. Ortada bir bölümi görmeli bolsa näme etmeli? Aşakdaky sed bir liner, myfile.txt-den 5-10 aralygy setirleri yzyna getirer:

# sed -n '5,10p' myfile.txt

2. Berlen aralykdan başga ähli faýly görmek

Başga bir tarapdan, belli bir aralykdan başga ähli faýly çap etmek isleýän bolsaňyz gerek. Myfile.txt-den 20-35 setirleri aýyrmak üçin:

# sed '20,35d' myfile.txt

3. Yzygiderli däl setirleri we aralyklary görmek

Yzygiderli däl setirler toplumy ýa-da birden köp aralyk bilen gyzyklanmagyňyz mümkin. Myfile.txt-den 5-7 we 10-13 setirleri görkezeliň:

# sed -n -e '5,7p' -e '10,13p' myfile.txt

Görşüňiz ýaly, -e opsiýasy her bir aralyk üçin berlen hereketi (bu ýagdaýda setirleri çap etmek) ýerine ýetirmäge mümkinçilik berýär.

4. Sözleri ýa-da nyşanlary çalyşmak (esasy çalyşma)

Myfile.txt-de wersiýasy sözüniň her koduny hekaýa bilen çalyşmak üçin:

# sed 's/version/story/g' myfile.txt

Mundan başga-da, nyşanlaryň ýagdaýyna ähmiýet bermezlik üçin g ýerine gi ulanmagy göz öňünde tutup bilersiňiz:

# sed 's/version/story/gi' myfile.txt

Birnäçe boş ýerleri bir boşluk bilen çalyşmak üçin, ip route show we turbageçirijiniň çykyşyny ulanarys:

# ip route show | sed 's/  */ /g'

ip route show çykyşyny turbageçiriji bilen we deňeşdirmän deňeşdiriň:

5. Aralykdaky sözleri ýa-da nyşanlary çalyşmak

Sözleri diňe setir aralygynda çalyşmak isleseňiz (mysal üçin 30-40 aralygy), edip bilersiňiz:

# sed '30,40 s/version/story/g' myfile.txt

Elbetde, diapazonyň ýerine degişli san arkaly bir setiri görkezip bilersiňiz.

6. Yzygiderli aňlatmalary ulanmak (ösen çalyşma) - I.

Käwagt konfigurasiýa faýllary teswirler bilen ýüklenýär. Bu, elbetde peýdaly bolsa-da, hemmesini bir göz bilen görmek isleseňiz, diňe konfigurasiýa görkezmelerini görkezmek peýdaly bolup biler.

Apache konfigurasiýa faýlyndan boş setirleri ýa-da # bilen başlaýanlary aýyrmak üçin:

# sed '/^#\|^$\| *#/d' httpd.conf

(^#) belgisiniň yzyndaky kartet belgisi, setiriň başlanandygyny görkezýär, ^$ bolsa boş setirleri görkezýär. Wertikal çyzyklar boolean amallaryny görkezýär, yzky çyzgy bolsa dik çyzyklardan gaçmak üçin ulanylýar.

Bu aýratyn ýagdaýda, Apache konfigurasiýa faýlynda käbir setirleriň başynda däl-de, # ' setirleri bar, şonuň üçin olary aýyrmak üçin * # ulanylýar.

7. Yzygiderli aňlatmalary ulanmak (ösen çalyşma) - II

Baş harp ýa-da kiçi harp bilen başlanýan sözi başga bir söz bilen çalyşmak üçin sed hem ulanyp bileris. Mysal üçin, geliň, zip ýa-da Zip sözüni myfile.txt-de rar bilen çalyşalyň:

# sed 's/[Zz]ip/rar/g' myfile.txt

8. Berlen nagyşly setirleri görmek

Sediň başga bir ulanylyşy, berlen yzygiderli aňlatma gabat gelýän faýldan setirleri çap etmekden ybaratdyr. Mysal üçin, CentOS 7 serwerindäki/var/log/safe log-a laýyklykda 2-nji iýulda bolup geçen awtorizasiýa we tassyklamak çärelerini görmek bilen gyzyklanyp bileris.

Bu ýagdaýda gözlemegiň nusgasy her setiriň başynda 2-nji iýul:

# sed -n '/^Jul  1/ p' /var/log/secure

9. Faýllara boşluk goýmak

Sed bilen, bir faýlda boş däl setirler üçin boş ýerleri (boş setirler) hem goýup bileris. LICENSE-de ýönekeý tekst faýly bolan beýleki setirleri goýmak üçin:

# sed G myfile.txt

Iki boş setir goýmak üçin:

# sed 'G;G' myfile.txt

Has boş setirler goşmak isleseňiz, nokatly nokat bilen bölünen baş harp G goşuň. Aşakdaky surat bu maslahatda görkezilen mysaly görkezýär:

Uly konfigurasiýa faýlyny barlamak isleseňiz, bu maslahat peýdaly bolup biler. Beýleki setirlere boş ýer goýmak we çykyşy az turba geçirmek has amatly okamak tejribesine getirer.

10. Içerki redaktirleme bilen dos2unix-e öýkünmek

Dos2unix programmasy, şol platformalarda ulanylýan käbir tekst redaktorlary tarapyndan goýlan gizlin täze setir nyşanlaryny aýyryp, Windows/Mac formatirlemesinden ýönekeý tekst faýllaryny Unix/Linux-a öwürýär. Linux ulgamyňyzda gurulmadyk bolsa, ony gurmagyň ýerine sed bilen işleýşini meňzeş edip bilersiňiz.

Çep tarapdaky suratda, soňundan aýrylan birnäçe DOS täze setir nyşanlaryny (^M) görüp bileris.

# sed -i 's/\r//' myfile.txt

-i opsiýasynyň ýerinde redaktirlemegi görkezýändigini ýadyňyzdan çykarmaň. Soňra üýtgeşmeler ekrana gaýtarylmaz, faýla ýazdyrylar.

Bellik: Vim redaktorynda Ctrl + V we Ctrl + M bilen faýl redaktirläniňizde DOS täze setir nyşanlaryny goýup bilersiňiz.

11. Asyl faýly ýerinde redaktirlemek we ätiýaçlandyrmak

Öňki maslahatda bir faýly üýtgetmek üçin sed ulanýardyk, ýöne asyl faýly ýatda saklamadyk. Käwagt asyl faýlyň ätiýaçlyk nusgasyny saklamak gowy zat.

Munuň üçin asyl faýlyň adyny üýtgetmek üçin ulanyljak -i opsiýasyna (ýekeje sözlemiň içinde) goşulmany görkeziň.

Aşakdaky mysalda, şu ýa-da şu ýagdaýyň hemmesini (mysaly hasaba almazdan) myfile.txt bilen çalyşarys we asyl faýly myfile.txt.orig görnüşinde ýatda saklarys.

Ahyrynda, iki faýlyň arasyndaky tapawudy kesgitlemek üçin diff peýdalylygyny ulanarys:

# sed -i'.orig' 's/this/that/gi' myfile.txt

12. Jübüt sözleriň çalyşmagy

Geliň, adyňyz, familiýaňyzda doly atlary öz içine alýan faýlyňyz bar diýeliň. Faýly ýeterlik derejede işlemek üçin familiýany we familiýasyny üýtgedip bilersiňiz.

Muny sed bilen aňsatlyk bilen edip bileris:

# sed 's/^\(.*\),\(.*\)$/\, /g' names.txt

Aboveokardaky suratda, 1-nji we 2-nji sanlar ýaly, aýratyn nyşanlar bolan gabygyň gaçmalydygyny görüp bileris.

Bu sanlar, yzygiderli yzygiderli aňlatmalary aňladýar (gabygyň içinde görünmeli):

  1. 1, her setiriň çekimliniň başyny aňladýar.
  2. 2 - setiriň ahyryna çenli dykgat bilen dogry hemme zat üçin ýer eýesi.

Islenýän çykyş SecondColumn (Familiýa) + vergi + boşluk + FirstColumn (First name) görnüşinde görkezilýär. Islän zadyňyza üýtgedip bilersiňiz.

13. Diňe aýratyn gabat gelse sözleri çalyşmak

Käwagt berlen sözüň ýa-da tötänleýin az sanly ýagdaýlaryň hemmesini çalyşmak, bize gerek zat däl. Aýry-aýry gabat gelse, çalyşmagy ýerine ýetirmeli bolmagymyz mümkin.

Mysal üçin, hyzmatlar sözi diňe bir setirde tapylan halatynda başlangyç bilen stop bilen çalyşmak isläp bileris. Şol ssenariýada, näme boljakdygy:

We need to start partying at work,
but let’s remember to start all services first.

Birinji setirde, başlangyç setir bilen çalşylmaz, sebäbi hyzmatlar sözi ikinji setirden tapawutlylykda şol setirde görünmeýär.

# sed '/services/ s/start/stop/g' msg.txt

14. Birbada iki ýa-da has köp çalyşmagy ýerine ýetirmek

Iki ýa-da has köp çalyşmagy bir sed buýrugyny birleşdirip bilersiňiz. Geliň, myfile.txt-daky setirleri degişlilikde şu we aýat bilen çalyşalyň.

Nokat belgisi we ikinji çalyşma buýrugy bilen adaty sed çalyşmak buýrugyny ulanyp, munuň nädip edilip bilinjekdigine üns beriň:

# sed -i 's/that/this/gi;s/line/verse/gi' myfile.txt

Bu maslahat aşakdaky suratda görkezilýär:

15. sed we beýleki buýruklary birleşdirmek

Elbetde, sed has güýçli buýruklary döretmek üçin beýleki gurallar bilen birleşdirilip bilner. Mysal üçin, 4-nji Maslahatda berlen mysaly ulanalyň we IP adresimizi ip route buýrugynyň çykyşyndan çykalyň.

Diňe src sözüniň bolýan setirini çap etmek bilen başlarys. Soňra birnäçe boşlugy bir ýere öwüreris. Ahyrynda, IP adresi bolan 9-njy meýdany keseris (ýekeje boşlugy meýdan bölüji hökmünde göz öňünde tutarys):

# ip route show | sed -n '/src/p' | sed -e 's/  */ /g' | cut -d' ' -f9

Aşakdaky surat ýokardaky buýrugyň her ädimini görkezýär:

Gysgaça mazmun

Bu gollanmada gündelik ulgam dolandyryş meseleleriňizde size kömek etmek üçin 15 sany maslahat we maslahat paýlaşdyk. Yzygiderli ulanýan we biziň we jemgyýetiň beýleki agzalary bilen paýlaşmak isleýän başga bir maslahatyňyz barmy?

Şeýle bolsa, aşakdaky düşündiriş formuny ulanyp bize habar beriň. Soraglar we teswirler hem hoş geldiňiz - sizden eşitmäge sabyrsyzlyk bilen garaşýarys!