Bii o ṣe le Lo Awk ati Awọn ifọrọhan Deede lati ṣe Ajọ Ọrọ tabi Okun ni Awọn faili


Nigba ti a ba n ṣiṣẹ awọn ofin kan ni Unix/Linux lati ka tabi ṣatunkọ ọrọ lati okun tabi faili kan, a ma n gbiyanju pupọ julọ lati ṣe àlẹmọ iṣẹjade si apakan ti a fun ni anfani. Eyi ni ibiti lilo awọn ikede deede wa ni ọwọ.

A le ṣe alaye ikosile deede bi awọn okun ti o ṣe aṣoju ọpọlọpọ awọn kikọ ti awọn kikọ. Ọkan ninu awọn ohun ti o ṣe pataki julọ nipa awọn ikede deede ni pe wọn gba ọ laaye lati ṣajọ iṣẹjade aṣẹ tabi faili, ṣatunkọ apakan ti ọrọ kan tabi faili iṣeto ati bẹbẹ lọ.

Awọn ifihan deede jẹ ti:

  1. Awọn ohun kikọ deede bi aaye, tẹnumọ (_), AZ, a-z, 0-9.
  2. Awọn ohun kikọ Meta ti o fẹ si awọn kikọ lasan, wọn pẹlu:
    1. (.) o baamu pẹlu eyikeyi ohun kikọ ayafi laini tuntun kan.
    2. (*) o baamu pẹlu awọn aye tabi diẹ sii awọn aye ti ohun kikọ lẹsẹkẹsẹ ti o ṣaju rẹ.
    3. [ohun kikọ (s)] o baamu eyikeyi ọkan ninu awọn ohun kikọ ti a ṣalaye ninu awọn ohun kikọ (s), ẹnikan tun le lo ami-ọrọ kan (-) lati tumọ si ibiti ti awọn kikọ bii [af] , [1-5] , ati bẹbẹ lọ.
    4. ^ o baamu ni ibẹrẹ ila kan ninu faili kan.
    5. $ baamu opin ila ni faili kan.
    6. \ o jẹ iwa abayo.

    Lati le ṣe àlẹmọ ọrọ, ẹnikan ni lati lo irinṣẹ sisẹ ọrọ bii awk. O le ronu ti awk bi ede siseto ti tirẹ. Ṣugbọn fun opin ti itọsọna yii si lilo awk, a yoo bo o bi ọpa sisẹ laini aṣẹ pipaṣẹ kan.

    Iṣeduro gbogbogbo ti awk ni:

    # awk 'script' filename
    

    Nibo akosile jẹ ipilẹ awọn ofin ti o yeye nipasẹ awk ati pe o ṣiṣẹ lori faili, orukọ faili.

    O ṣiṣẹ nipa kika ila ti a fun ni faili naa, ṣe ẹda ti laini ati lẹhinna ṣiṣẹ iwe afọwọkọ lori laini naa. Eyi tun ṣe lori gbogbo awọn ila inu faili naa.

    Awọn akosile wa ni fọọmu /apẹrẹ/igbese nibiti apẹẹrẹ jẹ ikosile deede ati iṣe jẹ ohun ti awk yoo ṣe nigbati o ba rii ilana ti a fun ni laini kan.

    Bii o ṣe le Lo Irinṣẹ Sisọ Awk ni Lainos

    Ninu awọn apẹẹrẹ atẹle, a yoo fojusi awọn ohun kikọ meta ti a jiroro loke labẹ awọn ẹya ti awk.

    Apẹẹrẹ ti o wa ni isalẹ tẹ gbogbo awọn ila inu faili/ati be be lo/awọn ogun nitori ko fun apẹẹrẹ.

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

    Mo apẹẹrẹ ti o wa ni isalẹ, a ti fun apẹẹrẹ localhost , nitorinaa awk yoo ba ila mu ti o ni localhost ni /ati be be lo/awọn olugbalejo faili.

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

    (.) yoo baamu awọn gbolohun ọrọ ti o ni agbegbe, localhost, localnet ninu apẹẹrẹ ni isalẹ.

    Iyẹn ni lati sọ * l some_single_character c *.

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

    Yoo baamu awọn okun ti o ni localhost, localnet, awọn ila, agbara, bi ninu apẹẹrẹ ni isalẹ:

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

    Iwọ yoo tun mọ pe (*) gbìyànjú lati jẹ ki o gba ere-idaraya ti o gunjulo ti o le rii.

    Jẹ ki a wo ọran ti o ṣe afihan eyi, mu ikosile deede t * t eyiti o tumọ si awọn gbolohun ọrọ ibaamu ti o bẹrẹ pẹlu lẹta t ati pari pẹlu t ninu ila ni isalẹ:

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

    Iwọ yoo gba awọn aye wọnyi nigbati o lo apẹẹrẹ /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
    

    Ati (*) ni /t * t/ ohun kikọ kaadi egan gba awk laaye lati yan aṣayan ti o kẹhin:

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

    Mu fun apẹẹrẹ ṣeto [al1] , nibi awk yoo baamu gbogbo awọn okun ti o ni ohun kikọ a tabi l tabi 1 ni ila kan ninu faili/ati be be lo/awọn ogun.

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

    Apẹẹrẹ ti o tẹle baamu awọn okun ti o bẹrẹ pẹlu boya K tabi k atẹle nipa T :

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

    Loye awọn ohun kikọ pẹlu awk:

    1. [0-9] tumọ si nọmba kan ṣoṣo
    2. [a-z] tumọ si ibaramu lẹta kekere kekere kan
    3. [A-Z] tumọ si ibaamu lẹta lẹta nla oke kan
    4. [a-zA-Z] tumọ si ibaamu lẹta kan ṣoṣo
    5. [a-zA-Z 0-9] tumọ si ibamu pẹlu lẹta kan tabi nọmba kan

    Jẹ ki a wo apẹẹrẹ ni isalẹ:

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

    Gbogbo laini lati faili/ati be be lo/awọn ogun ni o kere ju nọmba kan ṣoṣo [0-9] ninu apẹẹrẹ ti o wa loke.

    O baamu gbogbo awọn ila ti o bẹrẹ pẹlu apẹẹrẹ ti a pese gẹgẹbi ninu apẹẹrẹ ni isalẹ:

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

    O baamu gbogbo awọn ila ti o pari pẹlu apẹẹrẹ ti a pese:

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

    O gba ọ laaye lati mu ihuwasi ti o tẹle e bi gegebi ti o ni lati sọ ro o gẹgẹ bi o ti jẹ.

    Ninu apẹẹrẹ ti o wa ni isalẹ, aṣẹ akọkọ tẹ jade gbogbo ila ni faili naa, aṣẹ keji tẹ ohunkohun nitori Mo fẹ lati ba ila kan ti o ni $25.00 mu, ṣugbọn ko si ihuwasi ihuwasi ti a lo.

    Ofin kẹta jẹ deede nitori a ti lo ihuwasi abayo lati ka $bi o ti jẹ.

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

    Akopọ

    Iyẹn kii ṣe gbogbo pẹlu ohun elo sisẹ laini aṣẹ laini awk, awọn apẹẹrẹ ti o wa loke awọn iṣẹ ipilẹ ti awk. Ni awọn apakan atẹle a yoo ni ilọsiwaju lori bi a ṣe le lo awọn ẹya ti o nira ti awk. O ṣeun fun kika nipasẹ ati fun eyikeyi awọn afikun tabi awọn alaye, firanṣẹ asọye ni apakan awọn ọrọ.


Gbogbo awọn Ẹtọ wa ni ipamọ. © Linux-Console.net • 2019-2024