Yadda ake Amfani da Awk da Kalmomi na yau da kullun don Tace Rubutu ko Sirri a cikin Fayiloli


Lokacin da muke gudanar da wasu umarni a cikin Unix/Linux don karanta ko gyara rubutu daga zaren ko fayil, yawancin lokuta muna ƙoƙarin tace fitarwa zuwa ɓangaren da aka ba da sha'awa. Wannan shi ne inda amfani da maganganu na yau da kullum ya zo da amfani.

Za'a iya bayyana ma'anar magana ta yau da kullun azaman igiyoyi waɗanda ke wakiltar jerin haruffa da yawa. Ɗaya daga cikin muhimman abubuwa game da maganganu na yau da kullum shine suna ba ku damar tace fitarwa na umarni ko fayil, gyara wani yanki na rubutu ko fayil ɗin daidaitawa da sauransu.

Ana yin maganganu na yau da kullun daga:

  1. Haruffa na yau da kullun kamar sarari, ƙasa (_), A-Z, a-z, 0-9.
  2. Haruffan Meta waɗanda aka faɗaɗa zuwa haruffa na yau da kullun, sun haɗa da:
    1. (.) ya dace da kowane hali sai sabon layi.
    2. (*) yayi daidai da sifili ko fiye da kasancewar halin da ke gabansa.
    3. [ harafi (s) ya dace da kowane ɗayan haruffan da aka kayyade a cikin haruffa, kuma mutum zai iya amfani da layin (-) don nufin kewayo. na haruffa kamar [a-f], [1-5] , da sauransu.
    4. ^ yayi daidai da farkon layi a cikin fayil.
    5. $ yayi daidai da ƙarshen layi a cikin fayil.
    6. halin gudun hijira ne.

    Domin tace rubutu, dole ne mutum yayi amfani da kayan aikin tace rubutu kamar awk. Kuna iya tunanin awk a matsayin yaren shirye-shirye na kansa. Amma don iyakar wannan jagorar zuwa amfani da awk, za mu rufe shi azaman kayan aikin tace layin umarni mai sauƙi.

    Ma'anar jumla ta awk ita ce:

    # awk 'script' filename
    

    Inda script shine saitin umarni waɗanda awk suka fahimta kuma ana aiwatar dasu akan fayil, sunan fayil.

    Yana aiki ta hanyar karanta layin da aka bayar a cikin fayil ɗin, yin kwafin layin sannan aiwatar da rubutun akan layin. Ana maimaita wannan akan duk layin da ke cikin fayil ɗin.

    Rubutun yana cikin sigar /fasalin/aikiinda ƙirar kalma ce ta yau da kullun kuma aikin shine abin da awk zai yi idan ya sami tsarin da aka bayar a cikin layi.

    Yadda ake Amfani da Kayan Aikin Tace Awk a cikin Linux

    A cikin misalan masu zuwa, za mu mai da hankali kan harufan meta da muka tattauna a sama a ƙarƙashin fasalin awk.

    Misalin da ke ƙasa yana buga duk layin da ke cikin fayil /etc/hosts tunda ba a ba da tsari ba.

    # awk '//{print}'/etc/hosts
    

    A misalin da ke ƙasa, an ba da tsari localhost, don haka awk zai dace da layin yana da localhost a cikin fayil ɗin /etc/hosts.

    # awk '/localhost/{print}' /etc/hosts 
    

    (.) za ta dace da igiyoyi masu ɗauke da loc, localhost, localnet a cikin misalin da ke ƙasa.

    Wato * l wasu_hali_ guda c *.

    # awk '/l.c/{print}' /etc/hosts
    

    Zai dace da igiyoyi masu ɗauke da localhost, localnet, layi, masu iyawa, kamar a misalin da ke ƙasa:

    # awk '/l*c/{print}' /etc/localhost
    

    Hakanan za ku gane cewa (*) yana ƙoƙarin samun mafi tsayin wasa mai yiwuwa wanda zai iya ganowa.

    Bari mu kalli shari'ar da ta nuna wannan, ɗauki furci na yau da kullun t*t wanda ke nufin madaidaitan igiyoyin da suka fara da harafin t kuma su ƙare da t a cikin layin da ke ƙasa:

    this is tecmint, where you get the best good tutorials, how to's, guides, tecmint. 
    

    Za ku sami dama masu zuwa lokacin da kuke amfani da tsarin /t*t/ :

    this is t
    this is tecmint
    this is tecmint, where you get t
    this is tecmint, where you get the best good t
    this is tecmint, where you get the best good tutorials, how t
    this is tecmint, where you get the best good tutorials, how tos, guides, t
    this is tecmint, where you get the best good tutorials, how tos, guides, tecmint
    

    Kuma (*) a cikin /t*t/ halin katin daji yana ba da damar awk don zaɓar zaɓi na ƙarshe:

    this is tecmint, where you get the best good tutorials, how to's, guides, tecmint
    

    Ɗauki misali saitin [al1], anan awk zai dace da duk igiyoyin da ke ɗauke da harafi a ko l ko 1 a cikin layi a cikin fayil /etc/hosts.

    # awk '/[al1]/{print}' /etc/hosts
    

    Misali na gaba ya dace da igiyoyin da ke farawa da ko dai K ko k sannan T biyo baya:

    # awk '/[Kk]T/{print}' /etc/hosts 
    

    Fahimtar haruffa tare da awk:

    1. [0-9] yana nufin lamba ɗaya
    2. [a-z] yana nufin daidaita ƙananan harafi guda ɗaya
    3. [A-Z] yana nufin daidaita babban harafi guda ɗaya
    4. [a-zA-Z] yana nufin daidaita harafi ɗaya
    5. [a-zA-Z 0-9] yana nufin daidaita harafi ɗaya ko lamba

    Mu kalli misali a kasa:

    # awk '/[0-9]/{print}' /etc/hosts 
    

    Duk layin da ke cikin fayil ɗin /etc/hosts ya ƙunshi aƙalla lamba ɗaya [0-9] a cikin misalin da ke sama.

    Ya yi daidai da duk layin da suka fara da tsarin da aka bayar kamar yadda a cikin misalin da ke ƙasa:

    # awk '/^fe/{print}' /etc/hosts
    # awk '/^ff/{print}' /etc/hosts
    

    Ya yi daidai da duk layukan da suka ƙare da tsarin da aka bayar:

    # awk '/ab$/{print}' /etc/hosts
    # awk '/ost$/{print}' /etc/hosts
    # awk '/rs$/{print}' /etc/hosts
    

    Yana ba ka damar ɗaukar halin da ke biye da shi a matsayin zahiri wanda ke nufin ka yi la'akari da shi kamar yadda yake.

    A cikin misalin da ke ƙasa, umarni na farko yana fitar da duk layi a cikin fayil ɗin, umarni na biyu bai buga kome ba saboda ina so in yi daidai da layin da ke da $25.00, amma ba a yi amfani da halin tserewa ba.

    Umurni na uku daidai ne tunda an yi amfani da halin tserewa don karanta $kamar yadda yake.

    # awk '//{print}' deals.txt
    # awk '/$25.00/{print}' deals.txt
    # awk '/\$25.00/{print}' deals.txt
    

    Takaitawa

    Wannan ba duka tare da kayan aikin tace layin umarni ba, misalan da ke sama da ainihin ayyukan awk. A sassa na gaba za mu ci gaba kan yadda ake amfani da hadaddun fasalulluka na awk. Godiya da karantawa da duk wani ƙari ko bayani, sanya sharhi a cikin sashin sharhi.