Nasiha da Dabaru 15 masu fa'ida na sed Command Command don Ayyukan Gudanar da Tsarin Linux na yau da kullun


Kowane mai kula da tsarin dole ne ya yi mu'amala da fayilolin rubutu a sarari a kullun. Sanin yadda ake duba wasu sashe, yadda ake maye gurbin kalmomi, da yadda ake tace abun ciki daga waɗancan fayilolin ƙwarewa ne da kuke buƙatar samun amfani ba tare da yin binciken Google ba.

A cikin wannan labarin za mu sake nazarin sed, sanannen editan rafi, da raba shawarwari 15 don amfani da shi don cimma burin da aka ambata a baya, da ƙari.

1. Duba kewayon layi na takarda

Kayan aiki kamar kai da wutsiya suna ba mu damar duba ƙasa ko saman fayil. Idan muna buƙatar duba sashe a tsakiya fa? Seed one-liner mai zuwa zai dawo layi na 5 zuwa 10 daga myfile.txt:

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

2. Duban duk fayil banda kewayon da aka bayar

A gefe guda, yana yiwuwa kuna son buga duk fayil ɗin sai wani yanki. Don ware layi na 20 zuwa 35 daga myfile.txt, yi:

# sed '20,35d' myfile.txt

3. Duban layin da ba a jere ba

Yana yiwuwa kana sha'awar saitin layin da ba a jere ba, ko a cikin fiye da ɗaya. Bari mu nuna layin 5-7 da 10-13 daga myfile.txt:

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

Kamar yadda kuke gani, zaɓin -e yana ba mu damar aiwatar da aikin da aka bayar (a wannan yanayin, layukan buga) ga kowane kewayo.

4. Sauya kalmomi ko haruffa (masanya na asali)

Don maye gurbin kowane misali na kalmar version da labari a cikin myfile.txt, yi:

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

Bugu da ƙari, ƙila kuna so kuyi la'akari da amfani da gi maimakon g don yin watsi da harafin haruffa:

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

Don maye gurbin sarari mara yawa tare da sarari ɗaya, za mu yi amfani da fitarwa na ip road show da bututu:

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

Kwatanta abin da ake fitarwa na nunin hanyar ip tare da kuma ba tare da bututun ba:

5. Sauya kalmomi ko haruffa a cikin kewayo

Idan kuna sha'awar maye gurbin kalmomi kawai a cikin kewayon layi (30 zuwa 40, misali), kuna iya yin:

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

Tabbas, zaku iya nuna layi ɗaya ta hanyar lambar da ta dace maimakon kewayon.

6. Yin amfani da maganganu na yau da kullum (maɓallin ci gaba) - I

Wasu lokuta ana ɗora fayilolin sanyi tare da sharhi. Duk da yake wannan tabbas yana da amfani, yana iya zama taimako don nuna ƙa'idodin daidaitawa kawai wani lokaci idan kuna son duba su duka a kallo.

Don cire layin komai ko waɗanda suka fara da # daga fayil ɗin sanyi na Apache, yi:

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

Alamar kulawa da alamar lamba (^#) tana nuna farkon layi, yayin da ^$ yana wakiltar layukan da ba komai. Sandunan tsaye suna nuna ayyukan boolean, yayin da ake amfani da slash na baya don tserewa sandunan tsaye.

A wannan yanayin musamman, fayil ɗin sanyi na Apache yana da layi tare da #'s ba a farkon wasu layi ba, don haka ana amfani da *# don cire waɗannan suma.

7. Yin amfani da maganganu na yau da kullum (maɓallin ci gaba) - II

Don maye gurbin kalma da ta fara da babban baƙaƙe ko ƙarami da wata kalma, za mu iya amfani da sed. Don kwatanta, bari mu maye gurbin kalmar zip ko Zip da rar a cikin myfile.txt:

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

8. Duban layin da ke ɗauke da samfurin da aka ba

Wani amfani da sed ɗin ya ƙunshi buga layukan daga fayil ɗin da suka dace da bayanin da aka bayar na yau da kullun. Misali, ƙila mu yi sha'awar kallon izini da ayyukan tabbatarwa waɗanda suka faru a ranar Yuli 2, kamar yadda yake a cikin /var/log/amintaccen log a cikin sabar CentOS 7.

A wannan yanayin, tsarin da za a nema shine Yuli 2 a farkon kowane layi:

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

9. Saka sarari a cikin fayiloli

Tare da sed, za mu iya kuma saka sarari (layi mara kyau) ga kowane layi mara komai a cikin fayil. Don saka layin mara komai a kowane layi a LICENSE, fayil ɗin rubutu bayyananne, yi:

# sed G myfile.txt

Don saka layi mara kyau, yi:

# sed 'G;G' myfile.txt

Ƙara babban baƙaƙen G wanda ke raba shi da ɗan ƙaramin abu idan kuna son ƙara ƙarin layukan da ba komai. Hoton da ke gaba yana kwatanta misalin da aka zayyana a cikin wannan tukwici:

Wannan tip ɗin na iya zuwa da amfani idan kuna son bincika babban fayil ɗin daidaitawa. Saka sarari mara komai a kowane layi da busa kayan fitarwa zuwa ƙasa zai haifar da ƙarin ƙwarewar karatu.

10. Yin kwaikwayon dos2unix tare da gyaran layi

Shirin dos2unix yana jujjuya fayilolin rubutu na fili daga tsarin Windows/Mac zuwa Unix/Linux, yana cire ɓoyayyun haruffan sabbin layi waɗanda wasu editocin rubutu ke shigar da su a waɗannan dandamali. Idan ba a shigar da shi a cikin tsarin Linux ɗin ku ba, zaku iya kwaikwayi aikin sa tare da sed maimakon shigar da shi.

A cikin hoton da ke hannun hagu muna iya ganin haruffan sabbin layin DOS da yawa (^M) , waɗanda aka cire su daga baya tare da:

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

Da fatan za a lura cewa zaɓin -i yana nuna gyara a wuri. Sa'an nan canje-canje ba za a mayar da su zuwa allon ba, amma za a ajiye su zuwa fayil ɗin.

Lura: Kuna iya saka haruffan sabon layi na DOS yayin gyara fayil a editan vim tare da Ctrl+V da Ctrl+M.

11. Gyaran wuri da adana fayil na asali

A cikin bayanin da ya gabata mun yi amfani da sed don gyara fayil amma ba mu adana ainihin fayil ɗin ba. Wani lokaci yana da kyau a adana kwafin ainihin fayil ɗin kawai idan akwai.

Don yin haka, nuna wani ƙari mai bin zaɓin -i (cikin ƙididdiga ɗaya) don amfani da shi don sake suna na ainihin fayil ɗin.

A cikin misali mai zuwa za mu maye gurbin duk misalan wannan ko Wannan (yin watsi da shari'ar) da wancan a cikin myfile.txt, kuma za mu adana ainihin fayil ɗin azaman myfile.txt.orig.

A ƙarshe, za mu yi amfani da diff utility don gano bambance-bambance tsakanin fayilolin biyu:

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

12. Canza kalmomi guda biyu

Bari mu ɗauka cewa kuna da fayil ɗin da ke ɗauke da cikakkun sunaye a cikin tsarin Sunan Farko, Sunan Ƙarshe. Don aiwatar da fayil ɗin yadda ya kamata, kuna iya canza sunan Ƙarshe da Sunan Farko.

Za mu iya yin hakan tare da sed cikin sauƙi:

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

A cikin hoton da ke sama za mu iya ganin cewa baƙaƙe, kasancewar su haruffa na musamman, suna buƙatar tserewa, kamar yadda lambobi 1 da 2 suke.

Waɗannan lambobin suna wakiltar fitattun maganganu na yau da kullun (waɗanda ke buƙatar bayyana a cikin bakan gizo):

  1. 1 yana wakiltar farkon kowane layi har zuwa waƙafi.
  2. 2 shine mai riƙewa ga duk abin da ke daidai na waƙafi zuwa ƙarshen layi.

Ana nuna fitarwar da ake so a sigar Rukunin Biyu (Sunan Ƙarshe) + waƙafi + sarari + FirstColumn (Sunan Farko). Jin kyauta don canza shi zuwa duk abin da kuke so.

13. Sauya kalmomi kawai idan an sami wani wasa dabam

Wani lokaci maye gurbin duk yanayin kalmar da aka bayar, ko kaɗan, ba daidai ba ne abin da muke buƙata ba. Wataƙila muna buƙatar yin maye gurbin idan an sami wani wasa daban.

Misali, ƙila mu so mu maye gurbin farawa da tsayawa kawai idan an sami kalmar sabis a layi ɗaya. A cikin wannan yanayin, ga abin da zai faru:

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

A cikin layi na farko, ba za a maye gurbin farawa da tsayawa ba tunda kalmar sabis ba ta bayyana a wannan layin ba, sabanin layi na biyu.

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

14. Yin canji biyu ko fiye a lokaci guda

Kuna iya haɗa musanya biyu ko fiye da umarni guda ɗaya. Bari mu maye gurbin kalmomin da da layi a cikin myfile.txt tare da Wannan da aya, bi da bi.

Lura yadda za'a iya yin hakan ta amfani da umarnin maye gurbin sed na yau da kullun wanda ke biye da semicolon da umarnin musanya na biyu:

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

An kwatanta wannan tukwici a cikin hoto mai zuwa:

15. Haɗa sed da sauran umarni

Tabbas, ana iya haɗa sed tare da wasu kayan aikin don ƙirƙirar umarni masu ƙarfi. Misali, bari mu yi amfani da misalin da aka bayar a TIP #4 kuma mu ciro adireshin IP ɗinmu daga abin da aka fitar na ip wayumar.

Za mu fara da buga layi kawai inda kalmar src take. Sa'an nan kuma za mu canza wurare da yawa zuwa guda ɗaya. A ƙarshe, za mu yanke filin na 9 (la'akari da sarari ɗaya a matsayin mai raba filin), wanda shine inda adireshin IP yake:

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

Hoton da ke ƙasa yana kwatanta kowane mataki na umarnin da ke sama:

Takaitawa

A cikin wannan jagorar mun raba dabaru da dabaru guda 15 don taimaka muku da ayyukan gudanar da tsarin yau da kullun. Shin akwai wani nasihu da kuke amfani da shi akai-akai kuma kuna son rabawa tare da mu da sauran al'umma?

Idan haka ne, jin kyauta don sanar da mu ta amfani da fam ɗin sharhi a ƙasa. Hakanan ana maraba da tambayoyi da tsokaci - muna sa ran ji daga gare ku!