ലിനക്സ് കമാൻഡ് പഠിക്കുക - gawk

പേര്

gawk - പാറ്റേൺ സ്കാനിംഗ് ആന്റ് പ്രോസസ്സിംഗ് ഭാഷ

സംഗ്രഹം

gawk [POSIX അല്ലെങ്കിൽ ഗ്നു സ്റ്റൈൽ ഓപ്ഷനുകൾ] -f പ്രോഗ്രാം-ഫയൽ [ - ] ഫയൽ ...
[POSIX അല്ലെങ്കിൽ ഗ്നു സ്റ്റൈൽ ഓപ്ഷനുകൾ] [ - ] പ്രോഗ്രാം ടെക്സ്റ്റ് ഫയൽ ...

pgawk [POSIX അല്ലെങ്കിൽ ഗ്നു സ്റ്റൈൽ ഓപ്ഷനുകൾ] -f പ്രോഗ്രാം-ഫയൽ [ - ] ഫയൽ ...
[POSIX അല്ലെങ്കിൽ ഗ്നു സ്റ്റൈൽ ഓപ്ഷനുകൾ] [ - ] പ്രോഗ്രാം ടെക്സ്റ്റ് ഫയൽ ...

വിവരണം

AWK പ്രോഗ്രാമിങ് ഭാഷയുടെ ഗ്നു സംരംഭത്തിന്റെ നടത്തിപ്പുകാരനാണു് Gawk . POSIX 1003.2 കമാന്ഡ് ലാംഗ്വേജ് ആന്റ് യൂട്ടിലിറ്റീസ് സ്റ്റാൻഡേർഡിലുള്ള ഭാഷയുടെ നിർവ്വചനത്തെ ഇത് അനുരൂപമാക്കുന്നു. അനോ, കർനിഗാൻ, വീൻബെർഗർ എന്നിവരുടെ ഒരു എ.വി.ക്. പ്രോഗ്രാമിങ് ഭാഷയിലെ വിവരണം അടിസ്ഥാനമാക്കിയുള്ളതാണ് പതിപ്പ്, യുണിക്സ് എക്സ്റ്റസിൻറെ സിസ്റ്റം V റിലീസ് 4 പതിപ്പിൽ ലഭ്യമായ സവിശേഷതകളാണ്. സമീപകാലത്തെ ബെൽ ലബോറട്ടറീസ് പുരോഗതികളും , നിരവധി ഗ്നു-സ്പെഷ്യൽ എക്സ്റ്റൻഷനുകളും Gawk നൽകുന്നു.

പാവാക്ക് എന്നത് Gawk ന്റെ വിവരണമാണ്. പ്രോഗ്രാമുകൾ വളരെ സാവധാനത്തിൽ പ്രവർത്തിക്കുന്നതല്ലാതെ, ഇത് ഗോമിലേക്കുള്ള എല്ലാ വശങ്ങളിലും ഒരേപോലെയായിരിക്കും , കൂടാതെ അത് പൂർത്തിയാകുമ്പോൾ awkprof.out ഫയലിൽ ഒരു എക്സിക്യൂഷൻ പ്രൊഫൈൽ സ്വയം നിർമ്മിക്കുന്നു. താഴെ --profile ഐച്ഛികം കാണുക.

കമാന്ഡ് ലൈനില് AWK പ്രോഗ്രാം ടെക്സ്റ്റ് ( -f അല്ലെങ്കിൽ - ഫയല് ഓപ്ഷനുകള് വഴി വിതരണം ചെയ്തിട്ടില്ലെങ്കില്), ARGC , ARGV പ്രീ-നിര്വ്വചിച്ച AWK വേരിയബിള് എന്നിങ്ങനെയുളള മൂല്യങ്ങള് ലഭ്യമാക്കാനുള്ള ഓപ്ഷനുകളുമുണ്ട്.

ഓപ്ഷൻ ഫോർമാറ്റ്

Gawk ഐച്ഛികങ്ങൾ പരമ്പരാഗത POSIX ഒരു അക്ഷര ഓപ്ഷനുകളോ ഗ്നു സ്റ്റാൻഡേർഡ് ദീർഘമായ ഓപ്ഷനുകളോ ആകാം. POSIX ഓപ്ഷനുകൾ ഒരൊറ്റത്തോടുകൂടി '-' 'ആരംഭിക്കുന്നു, ദീർഘകാല ഓപ്ഷനുകൾ `-' 'ആരംഭിക്കുന്നു. ഗ്നു-നിർദ്ദിഷ്ട സവിശേഷതകൾക്കും പോസിക്സ്-നിർദ്ദിഷ്ട സവിശേഷതകൾക്കും ദീർഘവീക്ഷണം നൽകുന്നു.

POSIX സ്റ്റാൻഡേർഡ് അനുസരിച്ച്, ആർഗ്യുമെന്റുകൾ വഴി -W ഉപാധിയിലേക്ക് gaw സ്പീക്ക് ഓപ്ഷനുകൾ ലഭ്യമാക്കുന്നു. ഒന്നിലധികം വൺ ഓപ്ഷനുകൾ നൽകാം ഓരോ വിശദാംശങ്ങളും താഴെപ്പറയുന്നവയ്ക്കനുസൃതമായി ഓരോ ദീർഘവീക്ഷണത്തിനും അനുയോജ്യമായ ദൈർഘ്യമുള്ള ഓപ്ഷനുകൾ ഉണ്ട്. ദീർഘമായ ഐച്ഛികങ്ങളിലേക്കുള്ള ആർഗ്യുമെന്റുകൾ ഒന്നുകിൽ ഓപ്ഷൻ ഉപയോഗിച്ച് ഒരു = ചിഹ്നത്തോടൊപ്പം ചേർന്നു, ഇടവേളകളില്ലാത്ത സ്പെയ്സുകളോ അല്ലെങ്കിൽ അടുത്ത കമാൻഡ് ലൈൻ ആർഗ്യുമെന്റിനെയോ നൽകാം. ഷോർട്ട് ഓപ്ഷനുകൾ പ്രത്യേകമായി നിലനിൽക്കുന്നിടത്തോളം ചുരുക്കിയ ഓപ്ഷനുകൾ ചുരുക്കമായിരിക്കും.

ഓപ്ഷനുകൾ

അക്ഷരമാലയിൽ നൽകിയിരിക്കുന്ന ഓപ്ഷനുകൾ Gawk അംഗീകരിക്കുന്നു.

-F fs

--field-separator fs ഇൻപുട്ട് ഫീൽഡ് സെപ്പറേറ്ററിനുള്ള fs ഉപയോഗിക്കുക ( FS പ്രീഡിഫൈ ചെയ്ത വേരിയബിളിന്റെ മൂല്യം).

-v var = val

--assign var = val വേരിയബിൾ var യിലേക്ക് മൂല്യം വയ്ക്കുക , പ്രോഗ്രാം ആരംഭിക്കുന്നതിനു മുൻപ്. അത്തരത്തിലുള്ള മൂല്യങ്ങൾ ഒരു AWK പ്രോഗ്രാമിന്റെ BEGIN ബ്ലോക്കിന് ലഭ്യമാണ്.

-f പ്രോഗ്രാം-ഫയൽ

- ഫയൽ പ്രോഗ്രാം ഫയൽ ഫയൽ കമാൻഡ് ലൈൻ ആർഗ്യുമെന്റിനു പകരമായി ഫയൽ പ്രോഗ്രാം ഫയലിൽ നിന്നും AWK പ്രോഗ്രാം ഉറവിടം വായിക്കുക. അനവധി -f (അല്ലെങ്കിൽ --file ) ഐച്ഛികങ്ങൾ ഉപയോഗിയ്ക്കാം.

-mf NNN

-mr NNN വില NNN- യിലേക്ക് വിവിധ മെമ്മറി പരിധികൾ സജ്ജമാക്കുക. F ഫ്ലാഗുകൾ പരമാവധി എണ്ണം ഫീൽഡുകൾ സജ്ജമാക്കുന്നു, കൂടാതെ r ഫ്ലാഗ് പരമാവധി റെക്കോർഡ് സൈസ് ക്രമീകരിക്കുന്നു. ഈ രണ്ടു പതാകകളും -m ഓപ്ഷൻ യുണിക്സ് awk ലെ ബെല്ലിന്റെ ലബോറട്ടറീസ് റിസേർച്ച് പതിപ്പിൽ നിന്നാണ്. ഗൗക്ക് വഴി അവർ അവഗണിക്കപ്പെടുകയാണ്, കാരണം ഗോഗിന് മുൻ നിർവചിക്കപ്പെട്ടിട്ടുള്ള പരിധി ഇല്ല.

-W കംപൈൽ

പരമ്പരാഗത

- കോംപാറ്റ്

- പാരാസിറ്റി മോഡില് പ്രവര്ത്തിപ്പിക്കുക. അനുയോജ്യതാ മോഡിൽ, Gawk യുണിക്സ് യുക്തിയുമായി പൊരുത്തപ്പെടുന്ന രീതിയിൽ പ്രവർത്തിക്കുന്നു; ഗ്നു-അതിഷ്ടിത എക്സ്റ്റെൻഷനുകളൊന്നും അംഗീകരിക്കപ്പെട്ടിട്ടില്ല. ഈ ഓപ്ഷനിലെ മറ്റ് രൂപങ്ങളിൽ --traditional ആണ് ഉപയോഗിക്കുന്നത്. കൂടുതൽ വിവരങ്ങൾക്കായി, താഴെയുള്ള ഗ്നു EXTENSIONS കാണുക.

-വെബ് കോപ്പിലെഫ്റ്റ്

-W പകർപ്പവകാശം

- copyleft

- പകർപ്പവകാശം ഗ്നു പകർപ്പവകാശത്തിന്റെ സന്ദേശത്തിന്റെ ലഘു പതിപ്പും സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിൽ എക്സിറ്റ് ചെയ്യുക.

-W ഡംപ്-വേരിയബിൾസ് [ = file ]

--dump-variables [ = file ] ഫയൽ ചെയ്യുവാനുള്ള ഗ്ലോബൽ വേരിയബിളുകളുടെ പട്ടിക, അവയുടെ തരങ്ങളും അന്തിമ മൂല്യങ്ങളും. ഒരു ഫയലും നൽകിയില്ലെങ്കിൽ നിലവിലെ ഡയറക്ടറിയിൽ awkvars.out എന്ന പേരിലുള്ള ഫയൽ ഉപയോഗിക്കുന്നു.

എല്ലാ ആഗോള വേരിയബിളുകളുടേയും ഒരു ലിസ്റ്റ് നിങ്ങളുടെ പ്രോഗ്രാമുകളിലെ ടൈപ്പിഗ്രാഫിക് പിശകുകൾക്കായി നോക്കാനുള്ള ഒരു നല്ല മാർഗമാണ്. നിങ്ങൾക്ക് ധാരാളം ഫംഗ്ഷനുകൾ ഉള്ള ഒരു വലിയ പ്രോഗ്രാം ഉണ്ടെങ്കിൽ ഈ ഓപ്ഷൻ ഉപയോഗിക്കും, കൂടാതെ നിങ്ങളുടെ ഫംഗ്ഷനുകൾ അശ്രദ്ധമായി ലോക്കലായി നിങ്ങൾ ഉദ്ദേശിക്കുന്ന ആഗോള വേരിയബിളുകൾ ഉപയോഗിക്കാതിരിക്കാൻ ശ്രദ്ധിക്കണം. ( I , j എന്നിങ്ങനെയുള്ള ലളിതമായ പേരുകൾ ഉപയോഗിച്ച് ഇത് വളരെ എളുപ്പത്തിൽ ചെയ്യാവുന്ന ഒരു പിഴവാണ് .)

-W സഹായം

ഉപയോഗം

--സഹായിക്കൂ

--usage ലഭ്യമായ ഔട്ട്പുട്ടുകളുടെ താരതമ്യേന ചെറിയ സംഗ്രഹം സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിലാണ്. ( ഗ്നു കോഡിങ് സ്റ്റാൻഡേർഡ്സ് അനുസരിച്ച് , ഈ ഓപ്ഷനുകൾ ഉടനടി, വിജയകരമായ എക്സിറ്റ് ഉണ്ടാക്കുന്നു.)

-W lint [ = മരണപ്പെട്ട ]

--lint [ = മാരകമായ ] മറ്റേതെങ്കിലും താക്കോൽ നിർവ്വചനങ്ങൾക്ക് സംശയാസ്പദമായതോ അല്ലാത്തതോ ആയ നിർമ്മിതികളെക്കുറിച്ചുള്ള മുന്നറിയിപ്പുകൾ നൽകുക. മാരകമായ ഒരു വാദം കൂടിയാൽ , ലിൻഡ് മുന്നറിയിപ്പുകൾ ഗുരുതരമായ പിഴവുകളാണ്. ഇത് വളരെ പ്രതികൂലമായിരിക്കാം, പക്ഷേ അത് ഉപയോഗിക്കുന്നത് ക്ലീനർ AWK പ്രോഗ്രാമുകളുടെ വികസനത്തിന് തീർച്ചയായും പ്രോത്സാഹിപ്പിക്കും.

-വാ മെലിഞ്ഞ

- യുണിക്സ് തിയറിൻറെ ഒറിജിനൽ പതിപ്പിലേക്ക് പോർട്ടബിൾ അല്ലാത്ത നിർമ്മാണത്തെക്കുറിച്ചുള്ള മുന്നറിയിപ്പുകൾ നൽകുക.

-W ജീൻ-പോ

--gen-po AWK പ്രോഗ്രാമിനെ സ്കാൻ ചെയ്ത് പാഴ്സ് ചെയ്യുക, കൂടാതെ പ്രോഗ്രാമിലെ എല്ലാ പ്രാദേശികവൽക്കരണ സ്ട്രിങ്ങുകളുടെയും എൻട്രികൾ ഉള്ള സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിലാണ് ഒരു ഗ്നു ഫയൽ ഫോർമാറ്റ് ഉണ്ടാക്കുക. പ്രോഗ്രാം സ്വയം നടപ്പിലാക്കപ്പെടുന്നില്ല. .po ഫയലുകൾക്ക് കൂടുതൽ വിവരങ്ങൾക്ക് ഗ്നു gettext വിതരണം കാണുക.

-W നോൺ-ഡെസിമൽ-ഡാറ്റ

--non-decimal-data ഇൻപുട്ട് ഡാറ്റയിലെ ഒക്ടൽ, ഹെക്സാഡെസിമൽ മൂല്യങ്ങൾ തിരിച്ചറിയുക. ശ്രദ്ധാപൂർവ്വം ഈ ഓപ്ഷൻ ഉപയോഗിക്കുക!

-W പോസിക്സ്

--posix താഴെ പറഞ്ഞിരിയ്ക്കുന്ന അധിക നിയന്ത്രണങ്ങൾക്കൊപ്പം ഇതു് അനുയോജ്യതാ മോഡ് തിരിക്കുക:

*

\ x escape sequences തിരിച്ചറിഞ്ഞില്ല.

*

FS ഒറ്റ സ്പേസ് ആയി സജ്ജമാക്കുമ്പോൾ സ്ഥലവും ടാബും ഫീൽഡ് വെബറേറ്റർ മാത്രമായി പ്രവർത്തിക്കുന്നു, പുതിയ വരി ഇല്ല.

*

നിങ്ങൾക്ക് ശേഷം ലൈനുകൾ തുടരാൻ കഴിയില്ല ? കൂടാതെ :.

*

കീവേഡ് ഫംഗ്ഷനായുള്ള synonym func തിരിച്ചറിഞ്ഞില്ല.

*

^ , ^ = എന്നിവയ്ക്കു പകരം ഓപ്പറേറ്റർമാർ ** ഉം ** ഉം ഉപയോഗിക്കാനാവില്ല.

*

Fflush () ഫംഗ്ഷൻ ലഭ്യമല്ല.

-W പ്രൊഫൈൽ [ = prof_file ]

--profile [ = prof_file ] പ്രൊഫൈലിന്റെ വിവരങ്ങൾ prof_file ലേക്ക് അയയ്ക്കുക . സ്വതവേയുള്ളത് awkprof.out ആണ് . Gawk ഉപയോഗിച്ച് പ്രവർത്തിക്കുമ്പോൾ, പ്രൊഫൈലിന്റേത് "പ്രെറ്റി പ്രിന്റ്" എന്ന പ്രോഗ്രാമിന്റെ പ്രോഗ്രാമാണ്. Pgawk ഉപയോഗിച്ച് പ്രവർത്തിക്കുമ്പോൾ ഇടത് മാർജിൻ പ്രോഗ്രാമിലെ ഓരോ പ്രസ്താവനയുടെയും നിർവ്വഹണ എണ്ണം ഓരോ ഉപയോക്താവ് നിർവ്വചിത ഫംഗ്ഷനും ഫംഗ്ഷൻ കോളുകൾ വിളിക്കും.

-W ഇടവേള

--re-interval റെഗുലർ എക്സ്പ്രഷൻ പൊരുത്തത്തിൽ ഇടവേള എക്സ്പ്രഷനുകളുടെ ഉപയോഗം പ്രവർത്തനക്ഷമമാക്കുക (താഴെയുള്ള റെഗുലർ എക്സ്പ്രെഷനുകൾ കാണുക). ഇന്റർവെൽ എക്സ്പ്രഷനുകൾ പരമ്പരാഗതമായി AWK ഭാഷയിൽ ലഭ്യമായിരുന്നില്ല. POSIX സ്റ്റാൻഡേർഡ് അവ കൂട്ടി ചേർക്കുന്നു, പരസ്പരം പൊരുത്തപ്പെടുന്നതിന് ekrep . എന്നിരുന്നാലും, അവരുടെ ഉപയോഗം പഴയ AWK പ്രോഗ്രാമുകൾ തകർക്കാൻ സാധ്യതയുള്ളതിനാൽ, ഈ ഐച്ഛികം ആവശ്യപ്പെട്ടാൽ, അല്ലെങ്കിൽ --posix വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ മാത്രമേ അവർക്ക് മാത്രമേ Gawk നൽകുകയുള്ളൂ .

-W ഉറവിട പ്രോഗ്രാം-വാചകം

--source പ്രോഗ്രാം ടെക്സ്റ്റ് AWK പ്രോഗ്രാം ഉറവിട കോഡായി പ്രോഗ്രാം ടെക്സ്റ്റ് ഉപയോഗിക്കുക. ലൈബ്രറി ഫംഗ്ഷനുകൾ ( -f , --file ഐച്ഛികങ്ങൾ ഉപയോഗിച്ചു്) കമാൻഡ് ലൈനിൽ നൽകിയ സോഴ്സ് കോഡ് ഉപയോഗിച്ച് എളുപ്പത്തിൽ ഇന്റർമീക്സിങ് അനുവദിയ്ക്കുന്നു . ഷെൽ സ്ക്രിപ്റ്റുകളിലുളള വലിയ AWK പ്രോഗ്രാമുകൾക്ക് പ്രധാനമായും ഇത് ഉദ്ദേശിച്ചിട്ടുള്ളതാണ്.

-W പതിപ്പ്

--version സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിൽ Gawk ഈ പ്രത്യേക പകർപ്പിനുള്ള പതിപ്പ് വിവരങ്ങൾ പ്രിന്റ് ചെയ്യുക. ഫ്രീ സോഫ്റ്റ്വെയർ ഫൌണ്ടേഷൻ വിതരണം ചെയ്യുന്നതെന്തായാലും നിങ്ങളുടെ സിസ്റ്റത്തിലെ gawk ന്റെ നിലവിലെ കോപ്പി കാലികമാണോ എന്നറിയുന്നതിനായി ഇത് പ്രധാനമായും ഉപയോഗപ്പെടുന്നു. ബഗ്ഗുകൾ റിപ്പോർട്ട് ചെയ്യുമ്പോൾ ഇത് ഉപയോഗപ്രദമാണ്. ( ഗ്നു കോഡിങ് സ്റ്റാൻഡേർഡ്സ് അനുസരിച്ച് , ഈ ഓപ്ഷനുകൾ ഉടനടി, വിജയകരമായ എക്സിറ്റ് ഉണ്ടാക്കുന്നു.)

- ഓപ്ഷനുകളുടെ അവസാനം സിഗ്നൽ ചെയ്യുക. AWK പരിപാടിക്ക് `` - ന്റെ തുടക്കം മുതൽ തന്നെ കൂടുതൽ വാദങ്ങൾ അനുവദിക്കുന്നതിനാണ് ഇത് ഉപയോഗിക്കുന്നത്. മറ്റ് POSIX പ്രോഗ്രാമുകൾ ഉപയോഗിക്കുന്ന ആർഗ്യുമെന്റ് പാഴ്സ് കൺവെൻഷനുമായി ഇത് പ്രധാനമാണ്.

അനുയോജ്യതാ മോഡിൽ, മറ്റേതെങ്കിലും ഓപ്ഷനുകൾ അസാധുവായി ഫ്ലാഗുചെയ്തിട്ടുണ്ട്, എന്നാൽ അവയൊന്നും തന്നെ അവഗണിക്കപ്പെടുന്നു. സാധാരണ പ്രവർത്തനത്തിൽ, പ്രോഗ്രാം ടെക്സ്റ്റ് നൽകിയിരുന്നിടത്തോളം, അജ്ഞാതമായ ഓപ്ഷനുകൾ പ്രോസസ് ചെയ്യുന്നതിനുള്ള ARGV അറേയിൽ AWK പ്രോഗ്രാമിലേക്ക് കൈമാറുന്നു . `#! '' എക്സിക്യൂട്ടബിൾ ഇൻറർപ്റ്റർ സംവിധാനം മുഖേന AWK പ്രോഗ്രാമുകൾ പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള പ്രത്യേകത ഇത് ഉപയോഗപ്രദമാണ്.

AWK പ്രോഗ്രാം എക്സിക്യൂഷൻ

AWK പ്രോഗ്രാം പാറ്റേൺ-ആക്ഷൻ പ്രസ്താവനകളുടെയും ഓപ്ഷണൽ ഫംഗ്ഷൻ നിർവ്വചനങ്ങളുടെയും ഒരു ക്രമം ഉൾക്കൊള്ളുന്നു.

പാറ്റേൺ { ആക്ഷൻ സ്റ്റേറ്റ്മെന്റുകൾ }

ഫംഗ്ഷൻ നാമം ( പരാമീറ്റർ ലിസ്റ്റ് ) { statements }

നിർദ്ദേശിച്ചിരിക്കുന്ന പ്രോഗ്രാം പ്രോഗ്രാമിന്റെ ഫയലിൽ നിന്നും ഉറവിടം ആദ്യം വായിക്കുന്നു, ആർഗ്യുമെന്റുകളിൽ നിന്ന് - ഉറവിടം അല്ലെങ്കിൽ കമാൻഡ് ലൈനിലെ ആദ്യ നോൺ-ഓപ്ഷൻ ആർഗ്യുമെന്റിൽ നിന്ന്. കമാൻഡ് ലൈനിൽ -f ഉം --source ഉം ഒന്നിലധികം തവണ ഉപയോഗിക്കാം. പ്രോഗ്രാം പ്രോഗ്രാമിന്റെയും കമാൻഡ് ലൈനുകളുടെയും ഉറവിടഗ്രന്ഥങ്ങളെ ഒന്നിച്ചുചേർന്നതുപോലെ ഗാക്കും പ്രോഗ്രാം ടെക്സ്റ്റ് വായിച്ചു. AWK ഫംഗ്ഷനുകളുടെ ലൈബ്രറികൾ നിർമ്മിക്കുന്നതിന് ഇത് ഉപയോഗപ്രദമാണ്, അവ ഉപയോഗിക്കുന്ന ഓരോ പുതിയ AWK പ്രോഗ്രാമിലും അവ ഉൾപ്പെടുത്താതെ തന്നെ. കമാൻഡ് ലൈൻ പ്രോഗ്രാമുകളോടെ ലൈബ്രറി ഫംഗ്ഷനുകൾ മിക്സ് ചെയ്യാനുള്ള കഴിവു് അതു് ലഭ്യമാക്കുന്നു.

-f ഐച്ഛികം ഉപയോഗിച്ചുളള ഉറവിട ഫയലുകൾ കണ്ടെത്തുമ്പോൾ, AWKPATH ഉപയോഗിയ്ക്കുവാനുള്ള ഒരു പാഥ് എൻവയോണ്മെന്റ് വേരിയബിളിനെ സൂചിപ്പിക്കുന്നു. ഈ വേരിയബിള് നിലവിലില്ലെങ്കില്, സ്വതവേയുള്ള പാത്ത് ".: / Usr / local / share / awk" . ( Gawk എങ്ങനെയാണ് നിർമ്മിച്ചിരിക്കുന്നത് എന്നതിനെ ആശ്രയിച്ച് യഥാർത്ഥ ഡയറക്ടറി വ്യത്യാസപ്പെടാം.) -f ഓപ്ഷനിൽ നൽകിയിരിക്കുന്ന ഫയലിന്റെ പേര് ഒരു `` / '' പ്രതീകം ഉൾക്കൊള്ളുന്നുവെങ്കിൽ, പാത്ത് തിരയൽ നടക്കാറില്ല.

GWk താഴെ പറയുന്ന ക്രമത്തിൽ AWK പ്രോഗ്രാമുകൾ പ്രവർത്തിപ്പിക്കുന്നു. ആദ്യം, -v ഐച്ഛികം ഉപയോഗിച്ചു് വ്യക്തമാക്കുന്ന എല്ലാ വേരിയബിള്കളും ലഭ്യമാക്കുന്നു. അടുത്തതായി, പ്രോഗ്രാം ഒരു ആന്തരിക രൂപത്തിൽ സമാഹരിക്കുന്നു. പിന്നീട്, ബ്ലോക്ക് കോഡ് (ബ്ലോക്ക് (കൾ) ലെ കോഡാണ് പ്രവർത്തിപ്പിക്കുന്നത്, തുടർന്ന് ആർജിവി അറേയിൽ പേരുള്ള ഓരോ ഫയലും വായിക്കാൻ പോകുന്നു. കമാൻഡ് ലൈനിലെ ഒരു ഫയലുകളും ഇല്ലെങ്കിൽ, സ്റ്റാൻഡേർഡ് ഇൻപുട്ട് വായിച്ചു കാണിക്കുന്നു.

കമാൻഡ് ലൈനിലെ ഒരു ഫയൽ നെയിം ഫോം var = val ആയാൽ ഒരു വേരിയബിൾ അസൈൻമെന്റായി കണക്കാക്കപ്പെടുന്നു. വേരിയബിൾ var മൂല്യം മൂല്യമായി നിശ്ചയിക്കും. (ഏതെങ്കിലും ബ്ലോക്ക് (ബ്ലോക്ക്) പ്രവർത്തിച്ചാലുടൻ ഇത് സംഭവിക്കുന്നു.) വയലുകളിലും രേഖകളിലും എങ്ങനെ ഇൻപുട്ട് വേർപെടുക്കണമെന്ന് നിയന്ത്രിക്കാൻ വേരിയബിളുകളിൽ AWK ഉപയോഗിക്കുമ്പോൾ ഡൈനാമിക് ആയി മൂല്യങ്ങൾ നൽകുന്നതിന് കമാൻഡ് ലൈൻ വേരിയബിൾ അസൈൻമെന്റ് വളരെ ഉപയോഗപ്രദമാണ്. ഒരു ഡാറ്റാ ഫയൽ വഴി ഒന്നിലധികം പാസുകൾ ആവശ്യമുണ്ടെങ്കിൽ ഇത് സംസ്ഥാനത്തെ നിയന്ത്രിക്കുന്നതിന് ഉപകാരമായിരിക്കും.

ARGV- യുടെ ഒരു പ്രത്യേക ഘടകത്തിന്റെ മൂല്യം ശൂന്യമാണെങ്കിൽ ( "" ), ഗാവ്ക് അതിനെ മറികടക്കുന്നു.

ഇൻപുട്ടിലെ ഓരോ രേഖയ്ക്കും, AWK പ്രോഗ്രാമിലെ ഏത് പാറ്റേണുമായി പൊരുത്തപ്പെടുന്നുണ്ടോയെന്ന് കാണുന്നതിനുള്ള പരിശോധനകളും. റെക്കോർഡ് പൊരുത്തമുള്ള ഓരോ പാറ്റേക്കുമായി, അനുബന്ധ പ്രവർത്തനം നടപ്പിലാക്കപ്പെടുന്നു. പ്രോഗ്രാമിൽ സംഭവിക്കുന്ന ക്രമത്തിൽ പാറ്റേണുകൾ പരിശോധിക്കപ്പെടുന്നു.

അവസാനമായി, എല്ലാ ഇൻപുട്ട് തീരുമ്പോഴും, END ബ്ലോക്ക് (കൾ) ലെ കോഡാണ് Gawk പ്രവർത്തിപ്പിക്കുന്നത് .

വേരിയബിളുകൾ, റെക്കോർഡുകൾ, ഫീൽഡുകൾ

AWK വേരിയബിളുകൾ ചലനാത്മകമാണ്; അവർ ആദ്യം ഉപയോഗിക്കുമ്പോൾ അവർ അസ്തിത്വത്തിൽ വരും. അവയുടെ മൂല്യങ്ങൾ ഒന്നുകിൽ ഫ്ലോട്ടിംഗ്-പോയിന്റ് നമ്പറുകളോ സ്ട്രിംഗുകളോ അല്ലെങ്കിൽ രണ്ടും ഉപയോഗിച്ചോ ആണ് ഉപയോഗിക്കുന്നത്. AWK- ന് ഒരു ഡൈമൻഷണൽ അറേ ഉണ്ട്. ഒന്നിലധികം തലങ്ങളുള്ള അറേകൾ രൂപപ്പെടാം. പ്രോഗ്രാമുകൾ പ്രവർത്തിപ്പിക്കുന്നതിന് മുൻകൂട്ടി നിർവചിക്കപ്പെട്ട ചില വേരിയബിളുകൾ സജ്ജമാക്കിയിട്ടുണ്ട്; ഇത് ആവശ്യമായി വരുകയും താഴെ സംഗ്രഹിക്കുകയും ചെയ്യും.

രേഖകള്

സാധാരണയായി പുതിയ രേഖകൾ റെക്കോഡ്സ് ആയി വേർതിരിച്ചിരിക്കുന്നു. അന്തർനിർമ്മിതമായ വേരിയബിൾ RS- യ്ക്ക് മൂല്യങ്ങൾ നൽകുന്നതിലൂടെ റെക്കോർഡുകൾ എങ്ങനെ വേർതിരിക്കുന്നു എന്ന് നിങ്ങൾക്ക് നിയന്ത്രിക്കാൻ കഴിയും. RS എന്നത് ഒരൊറ്റ പ്രതീകമാണെങ്കിൽ, ആ കഥാപാത്രം റെക്കോർഡുകൾ വേർതിരിക്കുന്നു. അല്ലെങ്കിൽ, RS ഒരു സാധാരണ പദപ്രയോഗമാണ്. ഈ റെഗുലർ എക്സ്പ്രഷനുമായി പൊരുത്തപ്പെടുന്ന ഇൻപുട്ടിലുള്ള വാചകം റെക്കോർഡുചെയ്യുന്നു. എന്നിരുന്നാലും, അനുയോജ്യതാ മോഡിൽ, സ്ട്രിംഗ് മൂല്യത്തിന്റെ ആദ്യ പ്രതീകം രേഖകൾ വേർതിരിക്കുന്നതിന് ഉപയോഗിക്കുന്നു. RS ശൂന്യമായ സ്ട്രിംഗിലേക്ക് സജ്ജമാക്കിയെങ്കിൽ, രേഖകൾ വെവ്വേറെ വരികളാൽ വേർതിരിച്ചിരിക്കുന്നു. RS ശൂന്യമായ സ്ട്രിംഗിലേക്ക് സജ്ജമാക്കുമ്പോൾ, FS ന് എന്തുമൂല്യമുണ്ടെങ്കിലും ഒരു ഫീൽഡ് സെപ്പറേറ്റായി പുതിയ ലൈൻ പ്രതീകം പ്രവർത്തിക്കുന്നു.

ഫീൽഡുകൾ

ഓരോ ഇൻപുട്ട് റെക്കോർഡ് വായിക്കുന്നതുപോലെ, FS വേരിയബിളിന്റെ ഫീൽഡ് സെപ്പറേറ്റായി ഉപയോഗിച്ചു കൊണ്ട് Gawk റെക്കോർഡുകളായി റെക്കോർഡ് ചെയ്യുന്നു. FS ഒരു പ്രതീകമാണെങ്കിൽ, ഫീൾഡുകളാൽ ഫീൾഡുകളെ വേർതിരിക്കുന്നു. എഫ്എസ് എന്നത് ശരിയല്ലാത്ത സ്ട്രിംഗ് ആണെങ്കിൽ, ഓരോ വ്യക്തിയും ഒരു പ്രത്യേക ഫീൾഡ് ആയി മാറുന്നു. അല്ലാത്തപക്ഷം, FS പൂർണ്ണമായ ഒരു ആവിഷ്കാര പദപ്രയോഗമായി കരുതുന്നു. FS ഒരൊറ്റ സ്പേസ് ആണെന്ന പ്രത്യേക സാഹചര്യത്തിൽ, സ്പെയ്സുകളുടെയും / അല്ലെങ്കിൽ ടാബുകളുടെയും / അല്ലെങ്കിൽ പുതിയ വരികളുടെയും റഫറൻസ് ഉപയോഗിച്ച് വേർതിരിച്ചിരിക്കും. (എന്നാൽ, താഴെയുള്ള കുറിപ്പുകൾ സംബന്ധിച്ച ചർച്ച കാണുക). ശ്രദ്ധിക്കുക: FS ഒരു സാധാരണ എക്സ്പ്രഷൻ ആയാൽ എങ്ങനെയാണ് ഫീൾഡുകളെ വിഭജിക്കുന്നതെന്നതും ( RS ഒരു റെഗുലർ എക്സ്പ്രഷൻ ആണെങ്കിൽ എങ്ങനെയാണ് റെക്കോർഡുകൾ വേർതിരിക്കുന്നത് എന്നതുമെല്ലാം ) അജ്ഞാതമാണ് .

FIELDWIDTHS വേരിയബിൾ സംഖ്യകളുടെ വിഭജിത ലിസ്റ്റിൽ സെറ്റ് ചെയ്തിട്ടുണ്ടെങ്കിൽ, ഓരോ ഫീൽഡും നിശ്ചിത വീതിയും, ഗേക്ക് നിർദിഷ്ട വീതികളും ഉപയോഗിച്ച് റെക്കോർഡ് സ്പ്രെഡ് ചെയ്യുന്നു. FS ന്റെ വില അവഗണിക്കപ്പെടുന്നു. FS- ൽ പുതിയൊരു മൂല്യം നൽകുന്നത് FIELDWIDTHS ഉപയോഗിക്കുന്നതിനെ അസാധുവാക്കുകയും സ്വതവേയുള്ള പ്രവർത്തനരീതി പുനഃസ്ഥാപിക്കുകയും ചെയ്യും.

ഇൻപുട്ട് റെക്കോർഡിൽ ഓരോ ഫീൽഡും അതിന്റെ സ്ഥാനം, $ 1 , $ 2 മുതലായവ ഉപയോഗിച്ചേക്കാം. $ 0 ആണ് മുഴുവൻ റെക്കോഡും. ഫീൽഡുകൾ സ്ഥിരാങ്കങ്ങളാൽ റഫർ ചെയ്യേണ്ടതില്ല:

n = 5
$ n

ഇൻപുട്ട് റെക്കോർഡിൽ അഞ്ചാമത്തെ ഫീൽഡ് പ്രിന്റ് ചെയ്യുന്നു.

ഇൻപുട്ട് റെക്കോർഡിലെ മൊത്തം ഫീൽഡുകളിൽ വേരിയബിൾ NF സജ്ജീകരിച്ചിരിക്കുന്നു.

നിലവിലില്ലാത്ത ഫീൽഡുകൾക്കുള്ള റെഫറൻസുകൾ ( $ NF ന് ശേഷമുള്ള ഫീൽഡുകൾ) സല്ലാപം നിർമ്മിക്കുന്നു. എന്നിരുന്നാലും, നിലവിലില്ലാത്ത ഫീൽഡ് (ഉദാഹരണത്തിന്, $ (NF + 2) = 5 ) എൻഎഫ്എഫിന്റെ മൂല്യം വർദ്ധിപ്പിക്കുന്നു, നടുവിലത്തെ സ്ട്രിംഗിനെ അവരുടെ മൂല്യമായി ഇടപെടുന്ന ഏതെങ്കിലും ഫീൽഡുകൾ സൃഷ്ടിക്കുകയും റാംഗുട്ടുചെയ്യുന്നതിന് $ 0 എന്നതിന്റെ മൂല്യം കാരണമാക്കുകയും ചെയ്യുന്നു. ഈ ഫീൽഡുകൾ ഓഫ് എസ്സിന്റെ മൂല്യം കൊണ്ട് വേർതിരിക്കപ്പെടുന്നു. നെഗറ്റീവ് നമ്പർ ചെയ്ത ഫീൽഡുകളിലേക്കുള്ള റെഫറൻസുകൾ വളരെ ഗുരുതരമായ പിശക് ഉണ്ടാക്കുന്നു. എൻഎഫ് കുറയ്ക്കുവാൻ, പുതിയ മൂല്യത്തിൻറെ പഴയ മൂല്യങ്ങൾ നഷ്ടപ്പെടുവാനും, വീണ്ടും സമാഹരിക്കേണ്ട $ 0 എന്നതിന്റെ മൂല്യവും, എസ്എഎസ്സിന്റെ മൂല്യത്തിനൊപ്പം വിഭജിക്കപ്പെടുകയും ചെയ്യുന്നു.

$ 0 റെഫറൻസ് ചെയ്തപ്പോൾ നിലവിലുള്ള ഒരു ഫീൽഡിൽ ഒരു മൂല്യം നൽകുന്നത് മുഴുവൻ റെക്കോർഡും പുനർനിർമിക്കാൻ കാരണമാകുന്നു. അതുപോലെ, $ 0 എന്ന മൂടുപടം റിസൾട്ട് റീപ്ലേറ്റായി മാറുന്നു. ഇത് ഫീൽഡുകൾക്ക് പുതിയ മൂല്യങ്ങൾ സൃഷ്ടിക്കുന്നു.

അന്തർനിർമ്മിത വേരിയബിളുകൾ

Gawk ന്റെ അന്തർനിർമ്മിതമായ വേരിയബിളുകൾ ഇവയാണ്:

ARGC

കമാൻഡ് ലൈൻ ആർഗ്യുമെന്റുകളുടെ എണ്ണം (ഇതിൽ Gawk അല്ലെങ്കിൽ പ്രോഗ്രാം സോഴ്സിലേക്ക് ഓപ്ഷനുകൾ ഉൾപ്പെടുത്തിയിട്ടില്ല).

ARGIND

നിലവിലെ ഫയലിൻറെ ARGV ഇൻഡെക്സ് പ്രോസസ്സ് ചെയ്യുന്നത്.

ARGV

കമാൻഡ് ലൈൻ ആർഗ്യുമെന്റുകളുടെ ശ്രേണി. ഈ ശ്രേണി 0 മുതൽ ARGC വരെയുള്ള ഇൻഡെക്സ് ചെയ്യുന്നു. - 1. ARGV- ന്റെ ഉള്ളടക്കത്തെ ഡൈനമിക്കായി മാറ്റുന്നത് ഡാറ്റയ്ക്കായി ഉപയോഗിക്കുന്ന ഫയലുകൾ നിയന്ത്രിക്കാനാവും.

BINMODE

POSIX അല്ലാത്ത സിസ്റ്റങ്ങളിൽ, എല്ലാ ഫയൽ ഐ / ഒയ്ക്കുമായി `ബൈനറി മോഡ് 'ഉപയോഗിയ്ക്കുന്നു. 1, 2, അല്ലെങ്കിൽ 3 ന്റെ സംഖ്യകൾ, ഇൻപുട്ട് ഫയലുകൾ, ഔട്ട്പുട്ട് ഫയലുകൾ അല്ലെങ്കിൽ എല്ലാ ഫയലുകളും വ്യക്തമാക്കുക, ബൈനറി I / O ഉപയോഗിക്കേണ്ടതാണ്. "R" , അല്ലെങ്കിൽ "w" എന്ന സ്ട്രിങ് മൂല്ല്യങ്ങൾ ഇൻപുട്ട് ഫയലുകൾ അല്ലെങ്കിൽ ഔട്ട്പുട്ട് ഫയലുകൾ വ്യക്തമാക്കുന്നു, ബൈനറി I / O ഉപയോഗിക്കേണ്ടതാണ്. "Rw" അല്ലെങ്കിൽ "write" എന്ന സ്ട്രിങ് മൂല്ല്യങ്ങൾ എല്ലാ ഫയലുകളും ബൈനറി I / O ഉപയോഗിയ്ക്കണം. മറ്റേതൊരു സ്ട്രിംഗ് മൂല്യവും "rw" ആയി കണക്കാക്കുന്നു, പക്ഷേ ഒരു മുന്നറിയിപ്പ് സന്ദേശം സൃഷ്ടിക്കുന്നു.

CONVFMT

സംഖ്യകൾക്കായി പരിവർത്തന ഫോർമാറ്റ്, "% .6g" , സ്ഥിരസ്ഥിതിയായി.

ENVIRON

നിലവിലെ പരിതസ്ഥിതിയിലെ മൂല്യങ്ങൾ അടങ്ങിയിരിക്കുന്ന ശ്രേണി. ഈ പരിധി എൻററോൺമെൻറ് വേരിയബിളുകൾ സൂചിപ്പിക്കുന്നത്, ഓരോ ഘടകവും ആ വേരിയബിളിന്റെ മൂല്യം (ഉദാ: ENVIRON ["ഹോം"] / home / arnold ആകാം). ഈ ശ്രേണിയിൽ മാറ്റം വരുത്തുന്ന പ്രോഗ്രാമുകൾ റീഡയറക്ഷൻ അല്ലെങ്കിൽ സിസ്റ്റം () ഫംഗ്ഷൻ വഴി സ്പൂണുകളിലൂടെ കാണുന്ന പരിസ്ഥിതിയെ ബാധിക്കില്ല.

ERRNO

Getline എന്നതിനായുള്ള getring- ലൂടെ , getline- നായി റീഡ് ചെയ്യുമ്പോഴോ , അല്ലെങ്കിൽ അടുത്തടുത്ത സമയത്തോ ഒരു സിസ്റ്റം പിശകുണ്ടായാൽ, ERRNO- ൽ തെറ്റ് വിവരിക്കുന്ന ഒരു സ്ട്രിംഗ് ഉൾക്കൊള്ളുന്നു. ഇംഗ്ലീഷ് അല്ലാത്ത സ്ഥലങ്ങളിലെ വിവർത്തനം അനുസരിച്ചായിരിക്കും മൂല്യം.

FIELDWIDTHS

വെളുത്ത സ്പേസ് വിഭജിതമായ ഫീൽഡ് വിഡ്ത്ത്സ് ലിസ്റ്റ്. സജ്ജമാക്കുമ്പോൾ, ഫീൽഡ് വേരിയബിളിന്റെ ഫീൽഡ് സെപ്പറേറ്റായി ഉപയോഗിക്കുന്നതിന് പകരം, ഇൻപുട്ട് ഇൻലിങ്കിലേക്ക് സ്ഥിരമായ വീതിയുടെ ഫീൽഡുകളിലേക്ക് പാഴ്സ് ചെയ്യുന്നു.

ഫയലിന്റെ പേര്

നിലവിലെ ഇൻപുട്ട് ഫയലിന്റെ പേര്. കമാന്ഡ് ലൈനില് ഫയലുകളൊന്നും വ്യക്തമാക്കിയിട്ടില്ലെങ്കില്, FILENAME എന്ന മൂല്യത്തിന്റെ മൂല്യം `` - `ആണ്. എന്നിരുന്നാലും, FILENAME എന്നത് BEGIN ബ്ലോക്കിനുള്ളിൽ നിന്നും ( getline സജ്ജമാക്കിയിട്ടില്ലെങ്കിൽ) വ്യക്തമല്ല .

FNR

നിലവിലെ ഇൻപുട്ട് ഫയലിൽ ഇൻപുട്ട് റെക്കോർഡ് നമ്പർ.

FS

ഇൻപുട്ട് ഫീൽഡ് സെലക്ടർ, ഒരു സ്പേസ് ഡിഫോൾട്ട് ആയി. മുകളിലുള്ള ഫീൽഡുകൾ കാണുക.

അജ്ഞാതമാണ്

എല്ലാ റെഗുലർ എക്സ്പ്രഷനുകളുടേയും സ്ട്രിംഗ് പ്രവർത്തനങ്ങളുടേയും കേസ് സെൻസിറ്റിവിറ്റി നിയന്ത്രിക്കുന്നു. IGNORECASE- ന് പൂജ്യം അല്ലാത്ത ഒരു മൂല്യമുണ്ടെങ്കിൽ, ഫങ്ഷനുകൾ , ഫീൽഡ് വിഭജനം, FS ഉപയോഗിച്ച് വിഭജനം, RS ഉപയോഗിച്ച് വേർതിരിച്ച റെക്കോർഡ്, ~ ,! ~ , കൂടാതെ gensub () , gsub () , ഇൻഡെക്സ് () റെഗുലർ എക്സ്പ്രഷൻ പ്രവർത്തനങ്ങൾ നടത്തുമ്പോൾ, അവഗണിക്കുക കേസ് ( മത്സരം () , സ്പ്ലിറ്റ് () , ഉപ-() എന്നിവ ഉൾക്കൊള്ളുന്നു. ശ്രദ്ധിക്കുക: ശ്രേണി സബ്സ്ക്രിപ്റ്റിങ്ങ് ബാധിക്കപ്പെടില്ല, അല്ലെങ്കിൽ asort () function ആണ്.

അതിനാൽ, IGNORECASE പൂജ്യത്തിന് തുല്യമല്ലെങ്കിൽ, / aB / എല്ലാ സ്ട്രിങ്ങുകളും "ab" , "aB" , " ab" , "AB" എന്നിവയ്ക്ക് തുല്യമാണ്. എല്ലാ AWK വേരിയബിളുകളും പോലെ, ഇക്കണോമീസിസ്കിന്റെ പ്രാരംഭ മൂല്യം പൂജ്യമാണ്, അതിനാൽ എല്ലാ റെഗുലർ എക്സ്പ്രഷനും സ്ട്രിംഗ് ഓപ്പറേഷനുകളും സാധാരണയായി കേസ് സെൻസിറ്റീവ് ആണ്. യൂണിക്സിൽ, പൂർണ്ണ ഐഎസ്ഒ 8859-1 ലാറ്റിൻ-1 ക്യാരക്റ്റ് സെറ്റ് ഉപയോഗിച്ചു് അവഗണിച്ചു് ഉപയോഗിയ്ക്കുന്നു.

LINT

ഒരു AWK പ്രോഗ്രാമിനുള്ളിൽ നിന്ന് --lint ഉപാധിയിൽ ഡൈനമിക് നിയന്ത്രണം ലഭ്യമാക്കുന്നു. യാഥാർത്ഥ്യമാകുമ്പോൾ, ഗാർഡ് അച്ചടിച്ച ഉപദേശം മുന്നറിയിപ്പുകൾ. ഇത് തെറ്റാണെങ്കിൽ, അത് സാധ്യമല്ല. സ്ട്രിംഗ് മൂല്യത്തിന് "മാരകമായ" മൂല്യം നൽകുമ്പോൾ, മധുരമുള്ള താക്കീത് മുന്നറിയിപ്പ് = ഗുരുതരമായ പിഴവുകളാണ് . മറ്റേത് യഥാർത്ഥ മൂല്യം വെറുതെ അച്ചടിച്ച മുന്നറിയിപ്പുകൾ നൽകുന്നു.

NF

നിലവിലെ ഇൻപുട്ട് റെക്കോർഡിലെ ഫീൽഡുകളുടെ എണ്ണം.

NR

ഇതുവരെ ലഭ്യമായ ഇൻപുട്ട് റെക്കോർഡുകളുടെ എണ്ണം.

OFMT

സംഖ്യകളുടെ ഔട്ട്പുട്ട് ഫോർമാറ്റ്, "% .6g" , ഡിഫാൾട്ട് ആയി.

OFS

ഔട്ട്പുട്ട് ഫീൽഡ് സെലക്ടർ, ഒരു സ്പേസ് ഡിഫോൾട്ട്.

ORS

ഔട്ട്പുട്ട് റെക്കോർഡ് സെപ്പറേറ്റർ, സ്വമേധയാ ഒരു പുതിയ ലൈൻ.

PROCINFO

ഈ അറേയുടെ ഘടകങ്ങൾ പ്രവർത്തിപ്പിക്കുന്ന AWK പ്രോഗ്രാമിനെ കുറിച്ചുള്ള വിവരങ്ങൾ ലഭ്യമാക്കുന്നു. ചില സിസ്റ്റങ്ങളിൽ, അറേയിൽ ഘടകങ്ങൾ ഉണ്ടായിരിക്കാം, ചില " n " ഗ്രൂപ്പുകളിലൂടെ "group1" , ഗ്രൂപ്പിലെ സംക്രിയ ഗ്രൂപ്പുകളുടെ എണ്ണം. ഈ ഘടകങ്ങൾക്കായി പരിശോധിക്കുന്നതിന് ഓപ്പറേറററിൽ ഉപയോഗിക്കുക. ഇനിപ്പറയുന്ന ഘടകങ്ങൾ ലഭ്യമാകുന്നതിന് ഗ്യാരണ്ടിയിരിക്കുന്നു:

PROCINFO ["egid"]

getegid (2) സിസ്റ്റം കോളിൻറെ മൂല്യം.

PROCINFO ["എയ്ഡ്"]

geteuid (2) സിസ്റ്റം കോളിൻറെ മൂല്യം.

PROCINFO ["FS"]

FS ഉപയോഗിച്ച് ഫീൽഡ് വിഭജനം ചെയ്താൽ "FS" ഫലത്തിൽ അല്ലെങ്കിൽ FIELDWIDTHS ഉപയോഗിച്ച് വിഭജനം ചെയ്താൽ "FIELDWIDTHS" ഫലത്തിൽ ഫലപ്രദമാണ്.

PROCINFO ["gid"]

getgid (2) സിസ്റ്റം കോളിൻറെ മൂല്യം.

PROCINFO ["pgrpid"]

നിലവിലെ പ്രക്രിയയുടെ പ്രോസസ് ഗ്രൂപ്പ് ഐഡി.

PROCINFO ["പിഡ്"]

നിലവിലുള്ള പ്രക്രിയയുടെ ഐഡി.

PROCINFO ["പിപിഡ്"]

നിലവിലെ പ്രക്രിയയുടെ പേരന്റ് പ്രോസസ് ഐഡി.

PROCINFO ["യുഐഡി"]

getuid (2) സിസ്റ്റം കോളിൻറെ മൂല്യം.

ആർഎസ്

ഇൻപുട്ട് റെക്കോർഡ് സെപ്പറേറ്റർ, സ്വതവേ പുതിയൊരു ലൈനിൽ.

ആർട്ടി

റെക്കോർഡ് ടെർമിനേറ്റർ. RS വ്യക്തമാക്കുന്ന പ്രതീകമോ റെഗുലർ എക്സ്പ്രഷനോ പൊരുത്തപ്പെടുന്ന ഇൻപുട്ട് ടെക്സ്റ്റിലേക്ക് Gawk RT സജ്ജീകരിച്ചിരിക്കുന്നു.

RSTART

മത്സരം () ഉപയോഗിച്ച് പൊരുത്തപ്പെട്ട ആദ്യത്തെ പ്രതീകത്തിന്റെ സൂചിക; 0 പൊരുത്തമില്ലെങ്കിൽ. (ഇത് പ്രതീക ഇൻഡിക്കുകൾ ആരംഭിക്കുമ്പോൾ അത് സൂചിപ്പിക്കുന്നു.)

RLENGTH

മത്സരം () ഉപയോഗിച്ച് പൊരുത്തപ്പെടുന്ന സ്ട്രിംഗിന്റെ ദൈർഘ്യം; -1 പൊരുത്തമില്ലെങ്കിൽ.

SUBSEP

"\ 034" സ്വതവേ, നിര ഘടകങ്ങളിൽ ഒന്നിലധികം വരിക്കാരങ്ങൾ വേർതിരിക്കാൻ ഉപയോഗിച്ച പ്രതീകം.

TEXTDOMAIN

AWK പ്രോഗ്രാമിന്റെ ടെക്സ്റ്റ് ഡൊമെയ്ൻ; പ്രോഗ്രാമിന്റെ സ്ട്രിംഗുകളുടെ പ്രാദേശികവൽക്കരിച്ച വിവർത്തനങ്ങൾ കണ്ടെത്താനായി ഉപയോഗിച്ചു.

ശ്രേണികൾ

ചതുര ബ്രായ്ക്കറ്റുകൾ ( [ ഉം ] ) തമ്മിലുള്ള ഒരു എക്സ്പ്രെഷൻ ഉപയോഗിച്ച് ശ്രേണികൾ സൈഡാക്കിയിട്ടുണ്ട്. എക്സ്പ്രഷൻ ഒരു എക്സ്പ്രഷൻ ലിസ്റ്റാണ് ( expr , expr ...) എങ്കിൽ, സേർജ് സബ്സ്ക്രിപ്റ്റ് എന്നത് SUBSEP വേരിയബിളിന്റെ മൂല്യം കൊണ്ട് വേർതിരിക്കപ്പെടുന്ന ഓരോ എക്സ്പ്രഷനിയുടെയും (സ്ട്രിംഗ്) മൂല്യത്തിന്റെ സങ്കലനമാണ് . മൾട്ടിപ്ലൈസ് ഡിസ്മിനിഡ് അരേകൾ അനുകരിക്കുന്നതിന് ഈ സൗകര്യം ഉപയോഗിക്കുന്നു. ഉദാഹരണത്തിന്:

i = "എ"; j = "B"; k = "C"
x [i, j, k] = "ഹലോ, ലോകം \ n"

"A \ 034B \ 034C" എന്ന സ്ട്രിംഗിലൂടെ സൂചിപ്പിച്ചിരിക്കുന്ന ശ്രേണിയുടെ x- യുടെ ഘടകത്തിലേക്ക് "ഹലോ, ലോകം \ n" എന്ന സ്ട്രിംഗ് നൽകുന്നു. AWK- ലെ എല്ലാ അറേകളും സഹവർത്തിത്വം നൽകുന്നു, അതായത് സ്ട്രിംഗ് മൂല്യങ്ങൾ ഉപയോഗിച്ച് ഇൻഡെക്സ് ചെയ്യുന്നു.

ഒരു ശ്രേണിയിൽ ഒരു പ്രത്യേക മൂല്യമുള്ള ഒരു ശ്രേണി ഉണ്ടോ എന്ന് പരിശോധിക്കുകയാണെങ്കിൽ സ്പെഷ്യൽ ഓപ്പറേറ്റർ ഒരു ആണെങ്കിലുമുണ്ടെങ്കിൽ പ്രസ്താവനയിൽ ഉപയോഗിക്കാം.

(അരിക് മൂല്യം) അച്ചടിച്ച മൂലധനം

അറേയിൽ ഒന്നിലധികം വരിക്കാരങ്ങൾ ഉണ്ടെങ്കിൽ, അറേയിലുള്ള (i, j) ഉപയോഗിക്കുക.

നിർമ്മാണത്തിൽ ഒരു അറേയുടെ എല്ലാ ഘടകങ്ങളേയും അതിലേക്ക് റീഡുചെയ്യാൻ ഇത് ഉപയോഗിക്കാം.

ഇല്ലാതാക്കൽ സ്റ്റേറ്റ്മെന്റ് ഉപയോഗിച്ച് ഒരു അറേയിൽ നിന്ന് ഒരു ഘടകത്തെ ഇല്ലാതാക്കാം . സബ്സ്ക്രിപ്റ്റില്ലാതെ അറേ നിരയുടെ പേര് നിർദ്ദേശിച്ചുകൊണ്ട് ഒരു അറേയിലെ മുഴുവൻ ഉള്ളടക്കങ്ങളും ഇല്ലാതാക്കാൻ ഇല്ലാതാക്കൽ സ്റ്റേറ്റ്മെന്റ് ഉപയോഗിക്കാനിടയുണ്ട്.

വേരിയബിൾ ടൈപ്പിംഗ്, കൺവേർഷൻ

വേരിയബിളും ഫീൽഡുകളും (ഫ്ലോട്ടിങ് പോയിന്റ്) അക്കങ്ങൾ, അല്ലെങ്കിൽ സ്ട്രിങ്സ് അല്ലെങ്കിൽ രണ്ടും ആയിരിക്കാം. ഒരു വേരിയബിളിന്റെ മൂല്യം എങ്ങനെ വ്യാഖ്യാനിക്കുന്നു എന്നത് അതിന്റെ പശ്ചാത്തലത്തെ ആശ്രയിച്ചിരിക്കുന്നു. ഒരു സാംഖിക പ്രയോഗത്തിൽ ഉപയോഗിക്കുമ്പോൾ, ഒരു സ്ട്രിംഗ് ആയി ഇത് ഉപയോഗിച്ചിട്ടുണ്ടെങ്കിൽ അതിനെ ഒരു സ്ട്രിംഗ് ആയി പരിഗണിക്കും.

ഒരു സംഖ്യയായി കണക്കാക്കാൻ ഒരു വേരിയബിളിനെ നിർബന്ധിക്കാൻ, അതിൽ 0 ചേർക്കുക; ഇത് ഒരു സ്ട്രിംഗ് ആയി കണക്കാക്കുന്നതിന് സമ്മർദ്ദിക്കണമെങ്കിൽ, ഇത് നൾ സിൻറിനോട് കൂട്ടിച്ചേർക്കുന്നു.

ഒരു സ്ട്രിംഗ് ഒരു സംഖ്യയായി പരിവർത്തനം ചെയ്യുമ്പോൾ strtod (3) ഉപയോഗിച്ച് പരിവർത്തനം സാധ്യമാകും. CONVFMT ന്റെ മൂല്യം ഉപയോഗിച്ച് sprintf (3) ഫോർമാറ്റ് സ്ട്രിംഗായി ഉപയോഗിച്ചു് ഒരു സംഖ്യയായി ഒരു സ്ട്രിങ് ആയി പരിവർത്തനം ചെയ്യുന്നു. എന്നിരുന്നാലും, AWK ലെ എല്ലാ സംഖ്യകളും ഫ്ലോട്ടിങ് പോയിന്റാണെങ്കിലും, ഇന്റഗ്രൽ മൂല്യങ്ങൾ എല്ലായ്പ്പോഴും പൂർണ്ണസംഖ്യയായി പരിവർത്തനം ചെയ്യപ്പെടുന്നു. അങ്ങനെ, കൊടുത്തിരിക്കുന്നു

CONVFMT = "% 2.2f" a = 12 b = a "

വേരിയബിൾ ബി യുടെ "12" ന്റെ സ്ട്രിംഗ് മൂല്ല്യം "12.00" അല്ല .

Gawk താരതമ്യപഠനങ്ങൾ താഴെ പറയുന്നു: രണ്ട് വേരിയബിളുകൾ സംഖ്യയാണെങ്കിൽ, അവർ സംഖ്യകളെ താരതമ്യം ചെയ്യുന്നു. ഒരു മൂല്യം സാംഖിതവും മറ്റൊന്ന് സ്ട്രിംഗ് മൂല്യമുള്ള "സാംരിംഗ് സ്ട്രിംഗും" ആണെങ്കിൽ, താരതമ്യങ്ങളും എണ്ണത്തിൽ തന്നെ നിർവഹിക്കപ്പെടും. അല്ലെങ്കിൽ, സാംഖിക മൂല്യം ഒരു സ്ട്രിംഗിലേക്ക് പരിവർത്തനം ചെയ്യപ്പെടുന്നു, കൂടാതെ ഒരു സ്ട്രിംഗ് താരതമ്യം ചെയ്യപ്പെടും. രണ്ട് സ്ട്രിംഗുകൾ തീർച്ചയായും, സ്ട്രിംഗുകളെ പോലെ താരതമ്യം ചെയ്യുന്നു. POSIX സ്റ്റാൻഡേർഡ് എല്ലായിടത്തും, "സ്റ്റാൻഡിംഗ് കോൺടെന്ററുകൾ" വരെ എല്ലായിടത്തും "സംഖ്യ സ്റൈൽ" എന്ന ആശയം പ്രയോഗിക്കുന്നു. എന്നിരുന്നാലും, ഇതു വ്യക്തമായി തെറ്റാണ്, കൂടാതെ gawk ഇത് ചെയ്യുന്നില്ല. (ഭാഗ്യവശാൽ, ഇത് നിലവിലെ അടുത്ത പതിപ്പിൽ നിശ്ചയിക്കും.)

"57" പോലെയുള്ള സ്ട്രിംഗ് സ്ഥിരാങ്കങ്ങൾ സാംഖിക സ്ട്രിംഗുകൾ അല്ല , അവ അസ്ഥിരമായ സ്ട്രിംഗ് ആണ്. സംഖ്യാ സ്ട്രിംഗ് എന്ന ആശയം വയലിൽ, getline ഇൻപുട്ട്, FILENAME , ARGV ഘടകങ്ങൾ, ENVIRON ഘടകങ്ങൾ, സ്പ്ലിറ്റ് () ഉപയോഗിച്ച് സൃഷ്ടിച്ച ഒരു അറേയുടെ ഘടകങ്ങൾ എന്നിവ മാത്രമാണ്. ഉപയോക്തൃ ഇൻപുട്ട്, സംഖ്യാ ടാഗുകൾ മാത്രമുള്ള ഉപയോക്തൃ ഇൻപുട്ട് എന്നിവ ആ രീതിയായി കണക്കാക്കും എന്നതാണ് അടിസ്ഥാന ആശയം.

Uninitialized വേരിയബിളുകളിൽ സംഖ്യാ മൂല്യം 0 ഉം സ്ട്രിംഗ് മൂല്ല്യം "" (ശരിയല്ലാത്ത അല്ലെങ്കിൽ ശൂന്യമായ, സ്ട്രിംഗ്) ഉണ്ട്.

ആക്ടൽ, ഹെക്സാഡെസിമൽ സ്ഥിരാങ്കങ്ങൾ

Gawk ന്റെ 3.1 പതിപ്പ് മുതൽ, നിങ്ങളുടെ AWK പ്രോഗ്രാം സോഴ്സ് കോഡിൽ സി-സ്റ്റൈൽ ഒക്ടൽ, ഹെക്സാഡെസിമൽ കോൺസ്റ്റൻറുകൾ ഉപയോഗിക്കാം. ഉദാഹരണത്തിന്, ഒക്ടൽ മൂല്യം 011 , ദശാംശ സംഖ്യ 9 ന് തുല്യമാണ്, കൂടാതെ ഹെക്സാഡെസിമൽ മൂല്യം 0x11 , ദശാംശത്തിന് തുല്യമാണ്.

സ്ട്രിംഗ് കോൺസ്റ്റൻന്റ്സ്

AWK- ലെ സ്ട്രിംഗ് കോൺസ്റ്റൻറുകൾ ഇരട്ട ഉദ്ധരണികൾ ( "" ) ഉപയോഗിച്ച് തിരശ്ചീനമായി എഴുതുന്ന പ്രതീകങ്ങളുടെ വരികളാണ്. സ്ട്രിംഗിനു കീഴിൽ ചില escape sequences സി,

\\

അക്ഷരാർഥാഭാരം

\ a

'' അലർട്ട് '' പ്രതീകം; സാധാരണയായി ആസ്കി ബെൽ പ്രതീകം.

\ b

ബാക്ക്സ്പെയ്സ്.

\ f

ഫോം ഫീഡ്.

\ n

പുതിയ വര.

\ r

കറേജ് റിട്ടേൺ.

\ t

തിരശ്ചീന ടാബ്.

\ v

ലംബ ടാബിൽ.

\ x ഹെക്സ് ഡിജിറ്റുകൾ

\ X എന്നതിന് ശേഷം ഹെക്സാഡെസിമൽ അക്കങ്ങളുടെ സ്ട്രിംഗ് പ്രതിനിധാനം ചെയ്ത പ്രതീകം. ANSIC പോലെ, താഴെപ്പറയുന്ന എല്ലാ ഹെക്സാഡെസിമൽ അക്കങ്ങളും എസ്കേപ്പ് സീക്വൻസിന്റെ ഭാഗമായി കണക്കാക്കുന്നു. (ഈ സവിശേഷത നമുക്ക് കമ്മിറ്റി ഭാഷാ രൂപകല്പനയെക്കുറിച്ച് എന്തെങ്കിലും പറയണം.) ഉദാ. "\ X1B" എന്നത് ASCIIESC (escape) പ്രതീകമാണ്.

\ ddd

ഒക്ടൽ സംഖ്യകളുടെ 1-, 2-, അല്ലെങ്കിൽ 3 അക്ക സീക്വൻസ് പ്രതിനിധീകരിക്കുന്ന പ്രതീകം. ഉദാഹരണമായി, "\ 033" എന്നത് ASCII ESC (എസ്കേപ്പ്) പ്രതീകമാണ്.

\ c

അക്ഷരക കഥാപാത്രം സി .

സ്ഥിരമായ റെഗുലർ എക്സ്പ്രഷനുകൾക്കും (ഉദാഹരണം, / [\ t \ f \ n \ r \ v] / വൈറ്റ്സ്പെയ്സ് പ്രതീകങ്ങളുമായി പൊരുത്തപ്പെടുത്തൽ) ഉപയോഗിക്കാം.

കോംപാറ്റിബിളിറ്റി മോഡിൽ, പതിവ് എക്സ്പ്രഷൻ കോൺടെന്ററുകളിൽ ഉപയോഗിക്കുമ്പോൾ ഒക്ടൽ, ഹെക്സാഡെസിമൽ എസ്കേപ്പ് ശ്രേണികൾ പ്രതിനിധാനം ചെയ്യുന്ന പ്രതീകങ്ങൾ അക്ഷരാർത്ഥത്തിൽ പരിഗണിക്കും. അതിനാൽ, ഒരു \ 52b / a \ * b / എന്നതിന് തുല്യമാണ്.

പാറ്റേണുകളും പ്രവർത്തനങ്ങളും

AWK ഒരു ലൈൻ ഓറിയെന്റഡ് ഭാഷയാണ്. ആദ്യം പാറ്റേൺ, പിന്നെ ആക്ഷൻ. ആക്ഷൻ സ്റ്റേറ്റ്മെന്റുകൾ { , } എന്നിവയിൽ ചേർക്കുന്നു . ഒന്നുകിൽ പാറ്റേൺ നഷ്ടപ്പെടാം, അല്ലെങ്കിൽ പ്രവർത്തനം നഷ്ടപ്പെടാം, പക്ഷേ, തീർച്ചയായും, രണ്ടും ഒന്നല്ല. പാറ്റേൺ നഷ്ടപ്പെട്ടിട്ടുണ്ടെങ്കിൽ, ഓരോ റെക്കോർഡിന്റെയും റെക്കോഡിനുള്ള പ്രവർത്തനം പ്രവർത്തിക്കുന്നു. വിട്ടുപോയ പ്രവർത്തനം തുല്യമാണ്

{print}

ഇത് മുഴുവൻ റെക്കോർഡ് അച്ചടിക്കുന്നു.

അഭിപ്രായങ്ങൾ `` # '' അക്ഷരത്തിൽ ആരംഭിക്കുന്നു, തുടർന്ന് വരിയുടെ അവസാനം വരെ തുടരുക. വേർതിരിക്കൽ പ്രസ്താവനകൾക്കായി ശൂന്യ വരികൾ ഉപയോഗിക്കാം. സാധാരണയായി, ഒരു പ്രസ്താവന ഒരു പുതിയ ലൈനിൽ അവസാനിക്കുന്നു, എന്നിരുന്നാലും, ``, '',,, എന്നീ ഒടുവിൽ അവസാനിക്കുന്ന വരികൾക്കു വേണ്ടിയല്ല ഇത്. , : , && , അല്ലെങ്കിൽ || . ചെയ്യുന്ന അവസാന വരിയിൽ, അല്ലെങ്കിൽ താഴെ പറയുന്ന വരിയിൽ സ്വപ്രേരിതമായി അവരുടെ പ്രസ്താവനകൾ തുടരുന്നു. മറ്റു സന്ദർഭങ്ങളിൽ, ഒരു വരി അവസാനിപ്പിച്ച് ഒരു വരി തുടരാം, ഈ സാഹചര്യത്തിൽ പുതിയ വരി അവഗണിക്കപ്പെടും.

ഒന്നിലധികം പ്രസ്താവനകൾ ഒറ്റ വരിയിൽ ഒരു ""; "" വേർതിരിച്ചുകൊണ്ട് നൽകാം. ഇത് ഒരു പാറ്റേൺ ആക്ഷൻ ജോടിയുടെ (സാധാരണ കേസ്) ആക്ഷൻ ഭാഗത്തിന്റേയും രണ്ട് പാറ്റേൺ ആക്ഷൻ പ്രസ്താവനകളുടേയും രണ്ട് പ്രസ്താവനകൾക്കും ബാധകമാണ്.

പാറ്റേണുകൾ

AWK പാറ്റേണുകൾ ഇനിപ്പറയുന്നതിൽ ഒന്നായിരിക്കാം:

BEGIN END / റെഗുലർ എക്സ്പ്രഷൻ / റിലേഷണൽ എക്സ്പ്രഷൻ പാറ്റേൺ && പാറ്റേൺ പാറ്റേൺ || പാറ്റേൺ മാതൃക പാറ്റേൺ : പാറ്റേൺ ( പാറ്റേൺ ) ! പാറ്റേൺ മാതൃക 1 , പാറ്റേൺ 2

BEGIN ഒപ്പം എൻഡ് ഇൻപുട്ടിനെ പരിശോധിക്കാത്ത രണ്ടു പ്രത്യേക പാറ്റേണുകൾ. എല്ലാ വാചകങ്ങളും ഒരു BEGIN ബ്ലോക്കിൽ എഴുതിയിരുന്നത് പോലെ എല്ലാ BEGIN പാറ്റേണുകളുടേയും പ്രവർത്തന ഭാഗങ്ങൾ ലയിപ്പിച്ചു. ഏതൊരു ഇൻപുട്ടും വായിക്കുന്നതിനുമുമ്പ് അവ നടപ്പിലാക്കപ്പെടുന്നു. അതുപോലെ, എല്ലാ END ബ്ലോക്കുകളും ലയിപ്പിക്കുകയും, എല്ലാ ഇൻപുട്ട് തീരുമ്പോഴും (അല്ലെങ്കിൽ ഒരു എക്സിറ്റ് സ്റ്റേറ്റ്മെന്റ് എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ) എക്സിക്യൂട്ട് ചെയ്യുന്നു. BEGIN കൂടാതെ END പാറ്റേണുകൾ പാറ്റേൺ എക്സ്പ്രഷനുകളിലെ മറ്റ് പാറ്റേണുകളുമായി കൂടിച്ചേരാൻ കഴിയില്ല. BEGIN ഒപ്പം END പാറ്റേണുകൾ പ്രവർത്തന ഭാഗങ്ങൾ നഷ്ടമായിരിക്കില്ല.

റെഗുലർ എക്സ്പ്രഷനുമായി പൊരുത്തപ്പെടുന്ന ഓരോ ഇൻപുട്ട് റെക്കോർഡിനും / റെഗുലർ എക്സ്പ്രഷൻ / പാറ്റേണുകൾക്കായി അനുബന്ധ സ്റ്റേറ്റ്മെന്റ് എക്സിക്യൂട്ട് ചെയ്യുന്നു. സാധാരണ ഉദാഹരണം ഉദാഹരണം ഉദാഹരണം: (1) ഉദാഹരണം , താഴെ കൊടുത്തിരിക്കുന്നു.

പ്രവർത്തനത്തിലുള്ള വിഭാഗത്തിൽ ചുവടെ നിർവചിച്ചിട്ടുള്ള ഏതെങ്കിലും ഓപ്പറേറ്റർമാരെ ഒരു അനുബന്ധ എക്സ്പ്രഷൻ ഉപയോഗിക്കാം. ചില സാധാരണ ശൈലികൾ ചില റെഗുലർ എക്സ്ഷെഷനുകളുമായി പൊരുത്തപ്പെടുന്നുണ്ടോയെന്ന് ഇത് സാധാരണയായി പരിശോധിക്കുക

&& , || , പിന്നെ ! ഓപ്പറേറ്റർമാർ യഥാക്രമം ലോജിക്കൽ, ലോജിക്കൽ OR, ലോജിക്കൽ നോട്ടുകൾ എന്നിവയാണ്. സി പോലെ അവർ ചെറിയ സർക്യൂട്ട് മൂല്യനിർണ്ണയവും സി യിൽ പോലെ പ്രവർത്തിക്കുന്നു, കൂടാതെ കൂടുതൽ പ്രിമിറ്റീവ് പാറ്റേൺ എക്സ്പ്രഷനുകൾ സംയോജിപ്പിക്കുന്നതിന് ഉപയോഗിക്കുന്നു. മിക്ക ഭാഷകളിലും ഉള്ളപോലെ, മൂല്യനിർണ്ണയത്തിന്റെ ക്രമം മാറ്റാൻ ബ്രാക്കറ്റിൽ ഉപയോഗിക്കാം.

The : ഓപ്പറേറ്റർ C ലെ അതേ ഓപ്പറേറ്ററാണ്. ആദ്യ പാറ്റേൺ ശരിയാണെങ്കിൽ, ടെസ്റ്റിംഗിനുപയോഗിക്കുന്ന പാറ്റേൺ രണ്ടാമത്തെ പാറ്റേൺ ആണ്. അല്ലെങ്കിൽ അത് മൂന്നാമത്തേതാണ്. രണ്ടാമത്തെയും മൂന്നാമത്തേയും പാറ്റേണുകൾ ഒന്നു മാത്രമേ വിലയിരുത്തൂ.

ഒരു expression ന്റെ pattern1 , pattern2 ഫോം ഒരു ശ്രേണി പാറ്റേൺ എന്നു പറയുന്നു . പാറ്റേൺ 1- മായി പൊരുത്തപ്പെടുന്ന ഒരു റെക്കോർഡ് ഉപയോഗിച്ച് എല്ലാ ഇൻപുട്ട് റെക്കോർഡുകളുമായും ഇത് പൊരുത്തപ്പെടുന്നു, ഒപ്പം പാറ്റേൺ 2- മായി പൊരുത്തപ്പെടുന്ന ഒരു റെക്കോഡ് വരെ തുടരുകയും ചെയ്യുന്നു. ഇത് മറ്റേതെങ്കിലും പാറ്റേൺ എക്സ്പ്രഷനുകളുമായി സംയോജിപ്പിക്കുന്നത് ഇല്ല.

റെഗുലർ എക്സ്പ്രഷൻ

പതിവ് എക്സ്പ്രഷനുകളാണ് ഉദാഹരണം . അവ താഴെ തന്നിരിക്കുന്ന പ്രതീകങ്ങളാണ്:

c

നോൺ-മെറ്റാച്ചാർട്ടർ സി .

\ c

അക്ഷരക കഥാപാത്രവുമായി യോജിക്കുന്നു c .

.

പുതിയ വരി ഉൾപ്പെടുന്ന ഏത് പ്രതീകവുമായി പൊരുത്തപ്പെടുന്നു.

^

ഒരു സ്ട്രിംഗിന്റെ ആരംഭത്തിന് യോജിക്കുന്നു.

$

ഒരു സ്ട്രിംഗിന്റെ അവസാനം യോജിക്കുന്നു.

[ abc ... ]

പ്രതീക പട്ടിക, abc ഏത് അക്ഷരങ്ങളുമായി പൊരുത്തപ്പെടുന്നു ....

[^ abc ... ]

നിരസിക്കപ്പെട്ട പ്രതീക പട്ടിക, abc ഒഴികെയുള്ള ഏത് സ്വഭാവവും യോജിക്കുന്നു ....

r1 | r2

പകരക്കാരൻ: മത്സരങ്ങൾ r1 അല്ലെങ്കിൽ r2 .

r1r2

കൂട്ടുകെട്ട്: മത്സരങ്ങൾ r1 , തുടർന്ന് r2 .

r +

ഒന്നോ അതിലധികമോ റണ്ണുകളുമായി പൊരുത്തപ്പെടുന്നു.

r *

പൂജ്യം അല്ലെങ്കിൽ കൂടുതൽ r ന്റെതുമായി പൊരുത്തപ്പെടുന്നു.

ആർ ?

പൂജ്യം അല്ലെങ്കിൽ ഒന്നിന്റെ റണ്ണുകൾ .

( r )

ഗ്രൂപ്പുചെയ്യൽ: മത്സരങ്ങൾ r .

r { n }

r { n ,}

r { n , m } ബ്രെയ്സുകൾക്കുള്ളിൽ ഒന്നോ അതിലധികമോ സംഖ്യകൾ ഒരു ഇടവേള എക്സ്പ്രഷനെയാണ് സൂചിപ്പിക്കുന്നത്. ബ്രേക്കുകളിൽ ഒരു സംഖ്യ ഉണ്ടെങ്കിൽ, മുൻ പതിച്ച എക്സ്പ്രഷൻ r തവണ ആവർത്തിക്കുന്നു. ഒരു കോമ ഉപയോഗിച്ച് വേർതിരിക്കപ്പെട്ട രണ്ട് സംഖ്യകൾ ഉണ്ടെങ്കിൽ, r തവണ ആവർത്തിക്കുന്നു. ഒരു കോമയ്ക്കു് ശേഷം ഒരു സംഖ്യ ഉണ്ടെങ്കിൽ, r നെ കുറഞ്ഞത് തവണ തവണ ആവർത്തിക്കുന്നു.

കമാൻഡ് ലൈനിൽ --posix അല്ലെങ്കിൽ --re-interval വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ മാത്രമേ ഇടവേളകൾ ലഭ്യമാകുകയുള്ളൂ.

\ y

ഒരു പദത്തിന്റെ തുടക്കമോ അവസാനമോ ഇല്ലാത്ത ശൂന്യ സ്ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നു.

\ B

ഒരു പദത്തിനുള്ളിൽ ശൂന്യമായ സ്ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നു.

\ <

ഒരു വാക്കിന്റെ തുടക്കത്തിൽ ശൂന്യമായ സ്ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നു.

\>

ഒരു വാക്കിന്റെ അവസാനത്തിൽ ശൂന്യമായ സ്ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നു.

\ w

ഏതെങ്കിലും പദഘടന പ്രതീകവുമായി (അക്ഷരം, അക്കം അല്ലെങ്കിൽ അടിവരകൾ) യോജിക്കുന്നു.

\ W

വാക്ക്-ഘടകം അല്ലാത്ത ഏതെങ്കിലും പ്രതീകവുമായി ഇത് പൊരുത്തപ്പെടുന്നു.

\ `

ഒരു ബഫറിന്റെ തുടക്കത്തിൽ ശൂന്യ സ്ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നു (സ്ട്രിംഗ്).

\ '

ഒരു ബഫറിന്റെ അവസാനത്തിൽ ശൂന്യമായ സ്ട്രിംഗുമായി പൊരുത്തപ്പെടുന്നു.

സ്ട്രിംഗ് സ്ഥിരാങ്കങ്ങളിൽ സാധുതയുള്ള escape sequences (താഴെ കാണുക) റെഗുലർ എക്സ്പ്രഷനുകളിലും സാധുവാണ്.

PASIX സ്റ്റാൻഡേർഡിൽ അവതരിപ്പിച്ച പുതിയ ഫീച്ചറാണ് അക്ഷര ക്ലാസുകൾ . ഒരു പ്രതീക ക്ലാസ് ഒരു പ്രത്യേക ആട്രിബ്യൂട്ട് ഉള്ള പ്രതീകങ്ങളുടെ ലിസ്റ്റുകൾ വിവരിക്കാനുള്ള ഒരു പ്രത്യേക വിജ്ഞാപനമാണ്, എന്നാൽ യഥാർഥ പ്രതീകങ്ങൾ രാജ്യത്തിൽ നിന്ന് രാജ്യത്തിലേക്കും / അല്ലെങ്കിൽ സ്വഭാവ പ്രതീകത്തിൽ നിന്ന് പ്രതീക ഗണത്തിലേക്കും വ്യത്യാസപ്പെടാം. ഉദാഹരണത്തിന്, ഒരു അക്ഷര സ്വഭാവത്തിലുള്ള വ്യത്യാസം അമേരിക്കയിലും ഫ്രാൻസിലും വ്യത്യസ്തമാണ്.

ഒരു പ്രതീകങ്ങളുടെ ലിസ്റ്റിലെ ബ്രാക്കറ്റിലുള്ള റെഗുലർ എക്സ്പ്രഷനുകളിൽ മാത്രമേ പ്രതീക ക്ലാസ് സാധുവായിരിക്കൂ. ക്യാരക്ടർ ക്ലാസുകളിൽ [ , : ക്ലാസ് സൂചിപ്പിക്കുന്ന കീവേഡ്, കൂടാതെ :] . POSIX നിലവാരം നിർവ്വചിച്ചിരിക്കുന്ന ക്യാരക്ടർ ക്ലാസുകൾ:

[: alnum:]

അക്കങ്ങളും അക്ഷരങ്ങളും

[: ആൽഫ:]

അക്ഷര പ്രതീകങ്ങൾ.

[: ശൂന്യം:]

സ്പെയ്സ് അല്ലെങ്കിൽ ടാബ് പ്രതീകങ്ങൾ.

[: cntrl:]

പ്രതീകങ്ങൾ നിയന്ത്രിക്കുക.

[:അക്കം:]

സംഖ്യകളുടെ പ്രതീകങ്ങൾ.

[: ഗ്രാഫ്:]

പ്രിന്റ് ചെയ്യാവുന്നതും ദൃശ്യമായതുമായ പ്രതീകങ്ങൾ. (ഒരു സ്പേസ് പ്രിന്റ്ചെയ്യാം, പക്ഷേ ദൃശ്യമല്ല, ഒരു രണ്ടും ആണ്.)

[:താഴത്തെ:]

ലോവർ-കെയ്സ് അക്ഷരമാല

[: print:]

അച്ചടിക്കാവുന്ന പ്രതീകങ്ങൾ (പ്രതീകങ്ങൾ നിയന്ത്രിക്കുന്ന പ്രതീകങ്ങൾ.)

[: നിർവ്വചനം:]

ചിഹ്ന പ്രതീകങ്ങൾ (അക്ഷരങ്ങൾ, അക്കങ്ങൾ, പ്രതീകങ്ങൾ അല്ലെങ്കിൽ സ്പെയ്സ് അക്ഷരങ്ങൾ എന്നിവയല്ലാത്ത പ്രതീകങ്ങൾ).

[: സ്ഥലം:]

സ്പെയ്സ് പ്രതീകങ്ങൾ (സ്പെയ്സ്, ടാബ്, ഫോർമാറ്റ് തുടങ്ങിയവ, കുറച്ച് പേര്).

[:മുകളിലെ:]

അപ്പർ-കണ്സ് അക്ഷരമാല

[: xdigit:]

ഹെക്സാഡെസിമൽ അക്കങ്ങൾ ആയ പ്രതീകങ്ങൾ.

ഉദാഹരണത്തിന്, POSIX സ്റ്റാൻഡേർഡിന് മുമ്പ്, ആൽഫാന്യൂമെറിക് പ്രതീകങ്ങളുമായി പൊരുത്തപ്പെടുന്നതിന്, നിങ്ങൾക്ക് / [A-Za-z0-9] / എഴുതേണ്ടിവരും . നിങ്ങളുടെ പ്രതീകങ്ങളുടെ സെറ്റ് അതിൽ മറ്റ് അക്ഷരനിക്ഷേപങ്ങൾ ഉണ്ടെങ്കിൽ, ഇത് അവ പൊരുത്തപ്പെടുന്നില്ല, നിങ്ങളുടെ പ്രതീകം ASCII ൽ നിന്നും വ്യത്യസ്തമായി കൂട്ടിയിണക്കിയെങ്കിൽ, ഇത് ASCII അക്കങ്ങളുടെ അക്ഷരങ്ങൾക്ക് തുല്യമല്ല. POSIX ക്യാരക്ടർ ക്ലാസുകളിൽ, നിങ്ങൾക്ക് എഴുതാം / [[: alnum:]] / , ഇത് നിങ്ങളുടെ പ്രതീക ഗണത്തിൽ അക്ഷരങ്ങളും സംഖ്യാ അക്ഷരങ്ങളും പൊരുത്തപ്പെടുത്തുന്നു.

രണ്ട് അധിക പ്രത്യേക ചിഹ്നങ്ങൾ പ്രതീകങ്ങളുടെ ലിസ്റ്റിൽ പ്രത്യക്ഷപ്പെടാം. ഇത് ആസ്കി അല്ലാത്ത അക്ഷരങ്ങളായ ചരങ്ങളെയാണു് ബാധകമാവുന്നതു്, ഇതു് ഒന്നിലധികം അക്ഷരങ്ങളുള്ളതും ചിഹ്നത്തിനു് തുലനം ചെയ്യുന്നതിനു്, അല്ലെങ്കിൽ കൂട്ടിച്ചേർക്കുന്നതിനു് അനേകം പ്രതീകങ്ങൾക്കു് തുല്യമാണു്. (ഉദാഹരണത്തിന്, ഫ്രഞ്ചിൽ ഒരു സമർത്ഥമായ `` e '', 'ശവകുടീരം' 'എന്നിവ തുല്യമാണ്.)

ചിഹ്നങ്ങളും ചിഹ്നങ്ങളും

ഒരു കോലറ്റിങ് ചിഹ്നമാണ് [[. കൂടാതെ .] . ഉദാഹരണത്തിന്, ch ഒരു ആവരണ മൂലകം ആണെങ്കിൽ, [[.ch]] ആണ് ഈ ചിഹ്ന ഘടകവുമായി പൊരുത്തപ്പെടുന്ന ഒരു റെഗുലർ എക്സ്പ്രഷൻ, [c] , അല്ലെങ്കിൽ c അല്ലെങ്കിൽ h പൊരുത്തപ്പെടുന്ന റെഗുലർ എക്സ്പ്രഷൻ.

സമത്വം ക്ലാസുകൾ

ഒരു തുല്യത ക്ലാസ്സ് എന്നത് തത്തുല്യമായ പ്രതീകങ്ങൾക്കായുള്ള ഒരു പ്രാദേശിക-നിർദ്ദിഷ്ട നാമമാണ്. പേര് [= and =] എന്നതിൽ പൂജിക്കപ്പെട്ടിരിക്കുന്നു. ഉദാഹരണത്തിന്, `` ഇ, '' `ഇ ',' '',` `ഇ` എന്നിവയെ പ്രതിനിധാനം ചെയ്യുന്ന പേര് ഉപയോഗിക്കാം. '' ഈ കേസിൽ [[= e =]] ഒരു സാധാരണ പദപ്രയോഗമാണ് e , e അല്ലെങ്കിൽ e` മായി യോജിക്കുന്നു .

ഇംഗ്ലീഷ് ഇതര ഭാഷാ പ്രദേശങ്ങളിൽ ഈ സവിശേഷതകൾ വളരെ മൂല്യമുള്ളതായിരിക്കും. റെഗുലർ എക്സ്പ്രഷൻ പൊരുത്തത്തിനായി ഗോൾ ഉപയോഗിക്കുന്ന ലൈബ്രറി പ്രവർത്തനങ്ങൾ നിലവിൽ POSIX പ്രതീകങ്ങൾ തിരിച്ചറിയുന്നു; അവർ സങ്കലന ചിഹ്നങ്ങൾ അല്ലെങ്കിൽ തത്തുല്യ ക്ലാസുകൾ തിരിച്ചറിയുന്നില്ല.

\ Y , \ B , \ < , \> , \ w , \ W , \ ` , ഒപ്പം \ ' ഓപ്പറേറ്റർമാർ ഗൗക്ക് എന്നത് പ്രത്യേകതയാണ്; ഗ്നു റെഗുലർ എക്സ്പ്രഷൻ ലൈബ്രറികളിൽ സൗകര്യങ്ങൾ അടിസ്ഥാനമാക്കിയുള്ളവയാണ് അവ.

റെഗുലർ എക്സ്പ്രഷനുകളിലെ പ്രതീകങ്ങളെ gawk എങ്ങനെ വ്യാഖ്യാനിക്കുന്നുവെന്ന് വിവിധ കമാൻഡ് ലൈൻ ഓപ്ഷനുകൾ നിയന്ത്രിക്കുന്നു.

ഓപ്ഷനുകൾ ഒന്നുമില്ല

സ്ഥിരസ്ഥിതി സാഹചര്യത്തിൽ, POSIX റെഗുലർ എക്സ്പ്രഷനുകളുടെയും ജിഎൻയു റെഗുലർ എക്സ്പ്രഷൻ ഓപ്പറേറ്റർമാരുടെയും എല്ലാ സൗകര്യങ്ങളും Gawk നൽകുന്നു. എന്നിരുന്നാലും, ഇടവേള എക്സ്പ്രഷനുകൾ പിന്തുണയ്ക്കുന്നില്ല.

--posix

POSIX റെഗുലർ എക്സ്പ്രഷനുകൾ മാത്രമേ പിന്തുണയ്ക്കുന്നുള്ളൂ, ഗ്നു ഓപ്പറേറ്റർമാരായിരുന്നില്ല. (ഉദാഹരണത്തിന്, \ w ഒരു അക്ഷരീയ വാചിനോട് യോജിക്കുന്നു). ഇടവേളകൾ അനുവദനീയമാണ്.

- പാരഡിഷണൽ

പരമ്പരാഗത യുണിക്സ് റെഗുലർ എക്സ്പ്രഷനുകൾ പൊരുത്തപ്പെടുന്നു. ഗ്നു ഓപ്പറേറ്റർമാർ പ്രത്യേകമല്ല, ഇടവേള എക്സ്പ്രഷനുകൾ ലഭ്യമല്ല, കൂടാതെ POSIX ക്യാരക്ടർ ക്ലാസുകളും ( [[: alnum:]] തുടങ്ങിയവയല്ല. ഒക്ടൽ, ഹെക്സാഡെസിമൽ എസ്കേപ്പ് ശ്രേണികൾ വിവരിച്ച പ്രതീകങ്ങൾ അക്ഷരാർഥമായി കണക്കാക്കുന്നു, അവ പതിവായി ആവിഷ്കരിക്കുന്ന മെറ്റാച്ചറാക്ടറുകൾ ആണെങ്കിലും.

--re- ഇടവേള

റെഗുലർ എക്സ്പ്രഷനുകളിൽ അനുവദനീയമായ ഇടവേളകൾ അനുവദിക്കുക.

പ്രവൃത്തികൾ

ആക്ഷൻ സ്റ്റേറ്റ്മെന്റുകൾ ബ്രേസുകളിൽ അടച്ചിരിക്കുന്നു, { ഉം } . മിക്ക ഭാഷകളിലും സാധാരണ അസൈൻമെന്റ്, സോപാധികൾ, ലൂപ്പിംഗ് സ്റ്റേറ്റ്മെന്റുകൾ ഉണ്ടായിരിക്കും. ഓപ്പറേറ്റേഴ്സ്, കൺട്രോൾ സ്റ്റേറ്റ്മെന്റുകൾ, ലഭ്യമായ ഇൻപുട്ട് / ഔട്ട്പുട്ട് പ്രസ്താവനകൾ എന്നിവ സി.

ഓപ്പറേറ്റർമാർ

AWK ലെ ഓപ്പറേറ്റർമാർ, മുൻഗണന കുറയുന്നതിന് വേണ്ടി

( ... )

ഗ്രൂപ്പിംഗ്

$

ഫീൽഡ് റഫറൻസ്.

++ -

വർദ്ധനവ്, കുറവുകൾ, പ്രിഫിക്സ്, പോസ്റ്റ്ഫിക്സ് എന്നിവ.

^

എക്സ്പോണനേഷൻ ( ** ഉപയോഗിക്കാം, കൂടാതെ ** = അസൈൻമെന്റ് ഓപ്പറേറ്റർക്ക്).

+ -!

Unary plus, unary minus, ലോജിക്കൽ നെഗറ്റീവ്.

* /%

ഗുണനം, ഡിവിഷൻ, മോഡുലസ്.

+ -

അഡീഷൻ ആൻഡ് ഡാക്ട്രേഷൻ.

സ്ഥലം

സ്ട്രിംഗ് കൂട്ടുകെട്ട്.

<>

<=> =

സാധാരണ = relational operators.

~! ~

റെഗുലർ എക്സ്പ്രഷൻ പൊരുത്തം, നിരസിച്ച മത്സരം. ശ്രദ്ധിക്കുക: ഒരു ~ അല്ലെങ്കിൽ ! ~ ~ ന്റെ ഇടതു വശത്ത് സ്ഥിരമായ റെഗുലർ എക്സ്പ്രഷൻ ഉപയോഗിക്കരുത് ( / foo / ). വലത് വശത്ത് മാത്രം ഉപയോഗിക്കുക. എക്സ്പ്രഷൻ / foo / ~ exp ന്റെ അതേ അർത്ഥം (($ 0 ~ / foo /) ~ exp ) . ഇത് ഉദ്ദേശിച്ചത് ഉദ്ദേശിച്ചല്ല.

അകത്ത്

ശ്രേണിയുടെ അംഗത്വം.

&&

ലോജിക്കൽ കൂടാതെ.

||

ലോജിക്കൽ OR.

?:

സി വ്യവസ്ഥാപിത പദപ്രയോഗം. ഈ ഫോം expr1 ഉണ്ട് ? expr2 : expr3 . Expr1 ശരിയാണെങ്കില്, expression ന്റെ മൂല്യം expr2 ആണ് , അല്ലെങ്കില് അതു expr3 ആണ് . Expr2 , expr3 എന്നിവയിൽ ഒന്ന് മാത്രമേ വിലയിരുത്തപ്പെടുകയുള്ളൂ.

= + = - =

* = / =% = ^ = അസൈൻമെന്റ്. പൂർണ്ണമായ അസ്സൈൻമെന്റ് ( var = value ) , ഓപ്പറേറ്റർ-അസ്സൈൻമെന്റ് (മറ്റ് രൂപങ്ങൾ) എന്നിവ രണ്ടും പിന്തുണയ്ക്കുന്നു.

നിയന്ത്രണ സ്റ്റേറ്റ്മെന്റ്

നിയന്ത്രണ സ്റ്റേറ്റ്മെന്റുകൾ ഇനിപ്പറയുന്നതാണ്:

( പദപ്രശ്നം ) expat2 ( expr1 ; expr2 ; expr3 ) പ്രസ്താവന ( var അരേ ) സ്റ്റേറ്റ്മെന്റ് ബ്രേക്ക് തുടരുക നീക്കുക അരേ [ index ] നീക്കം അരേ എക്സിറ്റ് [ എക്സ്പ്രഷൻ ] പ്രസ്താവനകൾ }

I / O സ്റ്റേറ്റ്മെന്റുകൾ

ഇൻപുട്ട് / ഔട്ട്പുട്ട് സ്റ്റേറ്റ്മെന്റ് താഴെ പറയുന്നു:

അടയ്ക്കുക ( ഫയൽ [ , എങ്ങനെ ) ]

ഫയൽ, പൈപ്പ് അല്ലെങ്കിൽ സഹ-പ്രക്രിയ അടയ്ക്കുക. രണ്ടു-വഴികളുള്ള പൈപ്പിനെ ഒരു സഹ-പ്രോസസിലേക്ക് അവസാനിപ്പിക്കുമ്പോൾ മാത്രമേ ഉപയോഗിക്കാവൂ. ഇത് ഒരു സ്ട്രിംഗ് മൂല്യം ആയിരിക്കണം, അല്ലെങ്കിൽ "മുതൽ" .

getline

അടുത്ത ഇൻപുട്ട് റെക്കോർഡിൽ നിന്നും $ 0 സജ്ജമാക്കുക; NF , NR , FNR സജ്ജീകരിക്കുക.

getline < file

അടുത്ത ഫയലിന്റെ റെക്കോർഡിൽ $ 0 സെറ്റ് ചെയ്യുക. NF സജ്ജമാക്കുക.

getline var

അടുത്ത ഇൻപുട്ട് റെക്കോർഡിൽ നിന്നും var സജ്ജമാക്കുക; NR , FNR സെറ്റ്.

getline var < file

ഫയലിന്റെ അടുത്ത റെക്കോർഡിൽ നിന്നും var സജ്ജമാക്കുക.

കമാൻഡ് | getline [ var ]

ഔട്ട്പുട്ട് പൈപ്പ് ഔട്ട്പുട്ട് $ 0 അല്ലെങ്കിൽ var , മുകളിൽ പറഞ്ഞ പോലെ പ്രവർത്തിപ്പിക്കുക.

കമാൻഡ് | & getline [ var ]

ഔട്ട്പുട്ട് പൈപ്പ് ഔട്ട്പുട്ട് $ 0 അല്ലെങ്കിൽ var ആയി സഹ-പ്രോസസ് ആയി കമാൻഡ് പ്റവറ്ത്തിപ്പിക്കുക . സഹകരണ പ്രക്രിയകൾ ഒരു gawk വിപുലീകരണമാണ്.

അടുത്തത്

നിലവിലെ ഇൻപുട്ട് റെക്കോർഡ് പ്രോസസ്സ് ചെയ്യുന്നത് നിർത്തുക. അടുത്ത ഇൻപുട്ട് റെക്കോർഡ് AWK പ്രോഗ്രാമിലെ ആദ്യ പാറ്റേൺ വായിക്കുകയും പ്രോസസ്സ് ആരംഭിക്കുകയും ചെയ്യുന്നു. ഇൻപുട്ട് ഡാറ്റയുടെ അവസാനം എത്തിയെങ്കിൽ, END ബ്ലോക്ക് (കൾ) ഉണ്ടെങ്കിൽ, എക്സിക്യൂട്ട് ചെയ്യുന്നു.

അടുത്ത ഫയല്

നിലവിലെ ഇൻപുട്ട് ഫയൽ പ്രോസസ്സ് ചെയ്യുന്നത് നിർത്തുക. അടുത്ത ഇൻപുട്ട് ഫയലിൽ നിന്നും അടുത്ത ഇൻപുട്ട് റെക്കോർഡ് റീഡ് കാണാം. FILENAME , ARGIND എന്നിവ അപ്ഡേറ്റ് ചെയ്തു, FNR 1 ആയി പുനസജ്ജീകരിച്ചു, കൂടാതെ AWK പ്രോഗ്രാമിലെ ആദ്യത്തെ പാറ്റേണുമായി പ്രോസസ്സ് ആരംഭിക്കുന്നു. ഇൻപുട്ട് ഡാറ്റയുടെ അവസാനം എത്തിയെങ്കിൽ, END ബ്ലോക്ക് (കൾ) ഉണ്ടെങ്കിൽ, എക്സിക്യൂട്ട് ചെയ്യുന്നു.

പ്രിന്റ് ചെയ്യുക

നിലവിലെ റെക്കോർഡ് പ്രിന്റ് ചെയ്യുന്നു. ഔട്സ് വേരിയബിളിന്റെ മൂല്യത്തോടുകൂടിയ ഔട്ട്പുട്ട് റെക്കോർഡ് അവസാനിക്കുന്നു.

പ്രിന്റ് എക്സ്പ്രസ് ലിസ്റ്റ്

പ്രിന്റ്സ് എക്സ്പ്രഷനുകൾ. ഓരോ എക്സ്പ്രഷനും ഓഫ് വേരിയബിളിന്റെ മൂല്യം കൊണ്ട് വേർതിരിച്ചിരിക്കുന്നു. ഔട്സ് വേരിയബിളിന്റെ മൂല്യത്തോടുകൂടിയ ഔട്ട്പുട്ട് റെക്കോർഡ് അവസാനിക്കുന്നു.

പ്രിന്റ് എക്സ്പ്രസ് ലിസ്റ്റ് > ഫയൽ

ഫയലിൽ അച്ചടി എക്സ്പ്രഷനുകൾ. ഓരോ എക്സ്പ്രഷനും ഓഫ് വേരിയബിളിന്റെ മൂല്യം കൊണ്ട് വേർതിരിച്ചിരിക്കുന്നു. ഔട്സ് വേരിയബിളിന്റെ മൂല്യത്തോടുകൂടിയ ഔട്ട്പുട്ട് റെക്കോർഡ് അവസാനിക്കുന്നു.

printf fmt, expr-list

ഫോർമാറ്റ് ചെയ്യുക.

printf fmt, expr-list > ഫയൽ

ഫയൽ ഫോർമാറ്റ് ചെയ്ത് പ്രിന്റ് ചെയ്യുക.

സിസ്റ്റം ( cmd- ലൈൻ )

Cmd-line എന്ന കമാൻഡ് എക്സിറ്റ് ചെയ്യുക, തുടർന്ന് exit സ്റ്റാറ്റസ് തിരികെ നൽകുക. (ഇത് POSIX അല്ലാത്ത സിസ്റ്റങ്ങളിൽ ലഭ്യമാകില്ല.)

fflush ( [ file ] )

തുറന്ന ഔട്ട്പുട്ട് ഫയലുമായോ പൈപ്പ് ഫയലുകളുമായോ ബന്ധപ്പെട്ടിരിക്കുന്ന ഏതൊരു ബഫറുകളും ഫ്ലഷ് ചെയ്യുക. ഫയൽ നഷ്ടമായിട്ടുണ്ടെങ്കിൽ, സാധാരണ ഔട്ട്പുട്ട് ഫ്ളാഷ് ചെയ്യുന്നു. ഫയൽ പൂജ്യം സ്ട്രിംഗ് ആണെങ്കിൽ, എല്ലാ തുറന്ന ഔട്ട്പുട്ട് ഫയലുകളും പൈപ്പുകളും അവയുടെ ബഫറുകൾ ചലിപ്പിക്കും.

പ്രിന്റ് , printf എന്നിവയ്ക്കുള്ള അധിക ഔട്ട്പുട്ട് റീഡയറക്ടുകൾ അനുവദനീയമാണ്.

print >> >> ഫയൽ

ഫയൽ ഔട്ട്പുട്ട് കൂട്ടിച്ചേർക്കുന്നു.

അച്ചടിക്കുക ... | കമാൻഡ്

ഒരു പൈപ്പിൽ എഴുതുന്നു.

അച്ചടിക്കുക ... | & കമാൻറ്

ഒരു സഹ-പ്രോസസ്സിലേക്ക് ഡാറ്റ അയയ്ക്കുന്നു.

Getline കമാൻഡ് ഫയലിൻറെ അവസാനത്തിൽ 0 ഉം ഒരു പിശകിൽ -1 ഉം നൽകുന്നു. ഒരു പിശക് കാരണം, ERRNO എന്നതിൽ പ്രശ്നം വിവരിക്കുന്ന ഒരു സ്ട്രിംഗ് ഉൾപ്പെടുന്നു.

ശ്രദ്ധിക്കുക: ഒരു ലൂപിലേയ്ക്ക് ലൂപിൻറെയോ അച്ചടി അല്ലെങ്കിൽ printf ൽ നിന്നോ ഒരു പൈപ്പ് അല്ലെങ്കിൽ സഹ-പ്രോസസ്സ് ഉപയോഗിക്കുകയാണെങ്കിൽ, ആജ്ഞയുടെ പുതിയ സംഭവങ്ങൾ സൃഷ്ടിക്കുന്നതിന് നിങ്ങൾ () ഉപയോഗിക്കേണ്ടതുണ്ട്. EOF തിരികെ വരുമ്പോൾ AWK ഓട്ടോമാറ്റിക്കായി പൈപ്പുകൾ അല്ലെങ്കിൽ സഹ-പ്രക്രിയകൾ അടയ്ക്കുകയില്ല.

Printf സ്റ്റേറ്റ്മെന്റ്

Printf സ്റ്റേറ്റ്മെന്റിനെയും sprintf () ഫംഗ്ഷന്റെ AWK പതിപ്പുകൾ (ചുവടെ കാണുന്നവ) ഇനിപ്പറയുന്ന കൺവേർഷൻ സ്പെസിഫിക്കേഷൻ ഫോർമാറ്റുകൾ സ്വീകരിക്കുന്നു:

% c

ഒരു ASCII പ്രതീകം. % C നായുള്ള ആർഗ്യുമെന്റ് സംഖ്യയാണെങ്കിൽ, അത് ഒരു പ്രതീകമായും അച്ചടിക്കും. അല്ലെങ്കിൽ, വാദങ്ങൾ ഒരു സ്ട്രിംഗ് ആയി കണക്കാക്കപ്പെടുന്നു, ആ സ്ട്രിംഗിന്റെ ആദ്യ പ്രതീകം പ്രിന്റ് ചെയ്യപ്പെടുന്നു.

% d , % i

ഒരു ദശാംശ സംഖ്യ (പൂർണ്ണസംഖ്യ ഭാഗം).

% e,% E

ഫോമിന്റെ ഒരു ഫ്ലോട്ടിംഗ് പോയിന്റ് നമ്പർ [-] d.dddddde [+ -] dd . % E ഫോർമാറ്റ് പകരം ഉപയോഗിക്കുന്നത് .

% f

ഫോമിന്റെ ഒരു ഫ്ലോട്ടിംഗ് പോയിന്റ് നമ്പർ [-] ddd.dddddd .

%ജി ജി

% E അല്ലെങ്കിൽ % f പരിവർത്തനം ഉപയോഗിക്കുക, അത് എത്ര കുറവാണെങ്കിൽ, അസാധാരണമായ സൂറോകൾ അടിച്ചമർത്തലാണ്. % G ഫോർമാറ്റ് % e യുടെ പകരം % E ഉപയോഗിക്കുന്നു.

% o

ഒപ്പിട്ട ഒക്ടൽ സംഖ്യ (ഒരു പൂർണ്ണസംഖ്യയും).

% u ഇല്ലാത്ത ഒരു ദശാംശ സംഖ്യ (വീണ്ടും, ഒരു പൂർണ്ണസംഖ്യ).

% s

ഒരു പ്രതീക സ്ട്രിംഗ്.

% x,% X

ഒപ്പിട്ട ഹെക്സാഡെസിമൽ നമ്പർ (ഒരു ഇൻജെജർ). % X ശൈലി abcdef നു് പകരം ABCDEF ഉപയോഗിക്കുന്നു.

%%

ഒറ്റ % പ്രതീകം; ആർഗ്യുമെന്റ് പരിവർത്തനം ചെയ്തില്ല.

ഓപ്ഷണൽ, % , കണ്ട്രോൾ ലെറ്റർ എന്നിവയ്ക്കിടയിലുള്ള കൂടുതൽ പരാമീറ്ററുകൾ നൽകാം:

എണ്ണുക

ഫോർമാറ്റിംഗിൽ ഈ പോയിന്റിലെ അക്കത്തിന്റെ ആർഗ്യുമെന്റ് ഉപയോഗിക്കുക. ഇത് ഒരു positional സ്പെസിഫയർ എന്ന് വിളിക്കുന്നു, ഇത് പ്രാഥമികമായി ഫോർമാറ്റ് സ്ട്രിംഗുകളുടെ വിവർത്തന പതിപ്പുകളിൽ ഉപയോഗിക്കാൻ ഉദ്ദേശിച്ചുള്ളതാണ്, ഒരു AWK പ്രോഗ്രാമിന്റെ യഥാർത്ഥ വാചകത്തിൽ അല്ല. ഇത് ഒരു gawk വിപുലീകരണം ആണ്.

-

ഈ ഫീൽഡ് അതിന്റെ വയലിൽ ഇടതുപക്ഷം ന്യായീകരിക്കണം.

സ്ഥലം

സംഖ്യാ പരിവർത്തനങ്ങൾക്കായി, ഒരു സ്പെയ്സ് ഉപയോഗിച്ച് മുൻഗണന മൂല്യങ്ങൾ, ഒരു മൈനസ് ചിഹ്നമുള്ള നെഗറ്റീവ് മൂല്യങ്ങൾ.

+

വിഡ്ത്ത് മോഡിഫയർ ഉപയോഗിക്കുന്നതിന് മുമ്പ് ഉപയോഗിക്കുന്ന ചിഹ്നം (ചുവടെ നോക്കുക), എല്ലായ്പ്പോഴും ഫോർമാറ്റ് ഡാറ്റ ഫോർമാറ്റ് ചെയ്യപ്പെട്ടാലും നൂതന പരിവർത്തനങ്ങൾക്കായി ഒരു അടയാളം നൽകാൻ പറയുന്നു. സ്പെയ്സ് മോഡിഫയർ അസാധുവാക്കുന്നു.

#

ചില നിയന്ത്രണ അക്ഷരങ്ങൾക്കായി ഒരു `ഇതര ഫോം 'ഉപയോഗിക്കുക. % O നായി, ഒരു പൂജ്യമെങ്കിലും നൽകുക. % X , % X എന്നിവയ്ക്കായി , പൂജ്യമല്ലാത്ത ഫലത്തിനായി ഒരു പ്രധാന 0x അല്ലെങ്കിൽ 0X നൽകുക. % E , % E , % f എന്നിവയ്ക്കായി ഫലത്തിൽ എല്ലായ്പ്പോഴും ഒരു ദശാംശ ബിന്ദു അടങ്ങിയിരിക്കുന്നു. % G , % G എന്നിവയ്ക്കായി , ട്രയറിംഗ് പൂജ്യങ്ങൾ ഫലങ്ങളിൽ നിന്നും നീക്കം ചെയ്യില്ല.

0

ഒരു മുന്നിര 0 (പൂജ്യം) പതാകയായി പ്രവർത്തിക്കുന്നു, അതായത് ഔട്ട്പുട്ട് ശൂന്യമാവുന്നതിനു പകരം സുറസുകളെ പാടണം. ഇത് അല്ലാത്ത ഔട്ട്പുട്ട് ഫോർമാറ്റുകളിൽ ഇത് പ്രയോഗിക്കുന്നു. ഫീൽഡ് വീതി അച്ചടിച്ചതിനുള്ള മൂല്യത്തേക്കാൾ വിശാലമായപ്പോൾ ഈ പതാകത്തിന് മാത്രമേ പ്രഭാവം ഉള്ളൂ.

വീതി

ഫീൽഡ് ഈ വീതിയിലേക്ക് പാഡ് ചെയ്യണം. ഫീൽഡ് സാധാരണയായി സ്പെയ്സുകളോടെയാണ് പാടുന്നത്. 0 ഫ്ലാഗ് ഉപയോഗിച്ചിട്ടുണ്ടെങ്കിൽ, അത് സിയോരോടുകൂടിയാണ്.

. കൃത്യമായ

പ്രിന്റുചെയ്യുമ്പോൾ ഉപയോഗിക്കാനുള്ള കൃത്യത വ്യക്തമാക്കുന്ന ഒരു സംഖ്യ. % E , % E , % f ഫോർമാറ്റുകൾക്ക്, ദശാംശചിഹ്നത്തിന്റെ വലതുഭാഗത്തേക്ക് പ്രിന്റ് ചെയ്യേണ്ട അക്കങ്ങളുടെ എണ്ണം വ്യക്തമാക്കുന്നു. % G , % G ഫോർമാറ്റുകളിൽ ഇത് വ്യക്തമാക്കിയ സംഖ്യകളെ പരമാവധി വ്യക്തമാക്കുന്നു. % D , % o , % i , % u , % x , % X ഫോർമാറ്റുകൾക്കായി, അത് പ്രിന്റ് ചെയ്യാനുള്ള അക്കങ്ങളുടെ എണ്ണത്തിന്റെ എണ്ണം വ്യക്തമാക്കുന്നു. % S എന്നതിനായി, അത് അച്ചടിക്കേണ്ട സ്ട്രിംഗിൽ നിന്നുള്ള പ്രതീകങ്ങളുടെ പരമാവധി എണ്ണം വ്യക്തമാക്കുന്നു.

ANSI C printf () പ്രോഗ്രാമുകളുടെ ചലനാത്മക വീതിയും കൃത്യമായ കഴിവുകളും പിന്തുണയ്ക്കുന്നു. വീതി അല്ലെങ്കിൽ കൃത്യമായ നിർവ്വചനങ്ങൾക്ക് പകരം A * ആർഗ്യുമെന്റ് ലിസ്റ്റിൽ നിന്ന് printf അല്ലെങ്കിൽ sprintf () ലേക്ക് മാറ്റി വയ്ക്കുന്നു . ഡൈനാമിക് വീതിയോ അല്ലെങ്കിൽ കൃത്യതയോ ഒരു positional specifier ഉപയോഗിയ്ക്കുന്നതിനായി, ഫോർമാറ്റ് സ്ട്രിങിനു് ശേഷം * എണ്ണത്തിനു് ശേഷം $ നൽകുക . ഉദാഹരണത്തിന്, "% 3 $ * 2 $. * 1 $ s" .

പ്രത്യേക ഫയൽ നാമങ്ങൾ

പ്രിന്റോ പ്രിന്റ്ഫിൽ നിന്നോ അല്ലെങ്കിൽ ഫയലിൽ നിന്നും getline വഴിയോ ഐ / ഒ റീഡയറക്ഷൻ ചെയ്യുമ്പോൾ, ആന്തരികമായി ചില പ്രത്യേക ഫയൽനാമങ്ങൾ gawk തിരിച്ചറിയുന്നു. ഈ filenames gawk ന്റെ പാരന്റ് പ്രോസസിൽ നിന്നും (സാധാരണയായി ഷെൽ) നിന്നും അനന്തരമായി തുറക്കുന്ന ഫയൽ ഡിസ്ക്രിപ്റ്ററിലേക്കുള്ള പ്രവേശനം അനുവദിക്കുന്നു. ഡാറ്റാ ഫയലുകള്ക്ക് പേര് കൊടുക്കാന് കമാന്ഡ് ലൈനില് ഈ ഫയല് നാമങ്ങള് ഉപയോഗിക്കാം. ഫയലിന്റെ പേരുകൾ:

/ dev / stdin

സ്റ്റാൻഡേർഡ് ഇൻപുട്ട്.

/ dev / stdout

സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട്.

/ dev / stderr

സ്റ്റാൻഡേർഡ് എറർ ഔട്ട്പുട്ട്.

/ dev / fd / n

തുറന്ന ഫയൽ ഡിസ്ക്രിപ്റ്ററിന്റെ n മായി ബന്ധപ്പെട്ട ഫയൽ.

ഇവ പിശക് സന്ദേശങ്ങൾക്ക് വളരെ ഉപകാരപ്രദമാണ്. ഉദാഹരണത്തിന്:

"നിങ്ങൾ അത് ബ്ലീറ്റ് ചെയ്തു!" > "/ dev / stderr"

അല്ലെങ്കിൽ നിങ്ങൾ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്നെങ്കിൽ

"നിങ്ങൾ അത് ബ്ലീറ്റ് ചെയ്തു!" | "cat 1> & 2"

ടിസിപി / ഐപി നെറ്റ്വർക്ക് കണക്ഷനുകൾ സൃഷ്ടിയ്ക്കുന്നതിനായി | പ്രത്യേക ഫയൽനാമങ്ങൾ | & സഹ-പ്രോസസ് ഓപ്പറേറ്റർ ഉപയോഗിച്ചു് ഉപയോഗിക്കാം.

/ inet / tcp / lport / rhost / rport

റിമോട്ട് പോർട്ട് ആർടിപ്ടിൽ റിമോട്ട് ഹോസ്റ്റ് റഹോസ്റ്റിലേക്കു് ലോക്കൽ പോർട്ട് lport- ലുള്ള TCP / IP കണക്ഷനുളള ഫയൽ. സിസ്റ്റം ഒരു പോർട്ട് എടുക്കുന്നതിന് 0 ന്റെ പോർട്ട് ഉപയോഗിക്കുക.

/ inet / udp / lport / rhost / rport

സമാനമായെങ്കിലും, ടിസിപി / ഐപിയുടെ പകരമായി UDP / IP ഉപയോഗിക്കുക.

/ inet / raw / lport / rhost / rport

ഭാവിയിലെ ഉപയോഗത്തിനായി റിസർവ് ചെയ്തു.

മറ്റ് പ്രത്യേക ഫയൽനാമങ്ങൾ പ്രവർത്തിക്കുന്ന പ്രവർത്തനരീതിയെക്കുറിച്ചുള്ള വിവരങ്ങൾ ലഭ്യമാക്കുന്നു. ഈ ഫയൽനാമങ്ങൾ ഇപ്പോൾ കാലഹരണപ്പെട്ടതാണ്. അവർ നൽകുന്ന വിവരങ്ങൾ ലഭ്യമാക്കാൻ PROCINFO ശ്രേണി ഉപയോഗിക്കുക. ഫയലിന്റെ പേരുകൾ:

/ dev / pid

ഈ ഫയൽ വായിക്കുന്നതിലൂടെ നിലവിലെ പ്രോസസിന്റെ പ്രോസസ് ഐഡി, ദശാംശത്തിൽ, ഒരു പുതിയ ലൈനിൽ അവസാനിക്കുന്നു.

/ dev / ppid

ഈ ഫയൽ വായിക്കുന്നതിലൂടെ നിലവിലെ പ്രോസസിന്റെ പാരന്റ് പ്രോസസ്സ് ഐഡി, ദശാംശത്തിൽ ഒരു പുതിയ ലൈനിൽ അവസാനിക്കുന്നു.

/ dev / pgrpid

ഈ ഫയൽ വായിക്കുന്നതിലൂടെ നിലവിലുള്ള പ്രോസസിന്റെ പ്രോസസ് ഗ്രൂപ്പ് ഐഡി, ദശാംശത്തിൽ, ഒരു പുതിയ ലൈനിൽ അവസാനിക്കുന്നു.

/ dev / user

ഈ ഫയൽ വായിക്കുന്നത് ഒരു പുതിയ റെയ്നോടൊപ്പം ഒരൊറ്റ റെക്കോർഡ് നിർത്തുന്നു. ഫീൽഡുകൾ സ്പേസ് ഉപയോഗിച്ച് വേർതിരിച്ചിരിക്കുന്നു. Getuid (2) സിസ്റ്റം കോളിന്റെ മൂല്യം $ 1 ആണ്, geteuid (2) സിസ്റ്റം കോളിന്റെ മൂല്യം, $ 3 getgid (2) സിസ്റ്റം കോൾ മൂല്യം, $ 4 ആണ് getegid ന്റെ മൂല്യം (2) സിസ്റ്റം കോൾ. കൂടുതൽ അധികമായ ഫീൽഡുകൾ ഉണ്ടെങ്കിൽ, അവർ get ഗ്രൂപ്പുകൾ (2) നൽകിയ ഗ്രൂപ്പ് ഐഡികളാണ് . എല്ലാ സിസ്റ്റങ്ങളിലും അനവധി ഗ്രൂപ്പുകൾ പിന്തുണയ്ക്കില്ല.

സംഖ്യാപരമായ ഫങ്ഷനുകൾ

AWK- ന് താഴെ പറയുന്ന ബില്റ്റ്-ഇന് അരിത്മെറ്റിക് ഫങ്ഷനുകള് ഉണ്ട്.

atan2 ( y , x )

റേഡിയനിൽ Y / x ന്റെ ആർക്ടാഞ്ചൻറിന് നൽകുന്നു.

cos ( പുറം )

റേഡിയനിൽ ഉള്ള exper ന്റെ cosine നൽകുന്നു.

exp ( expr )

എക്സ്പൊണൻഷ്യൽ ഫംഗ്ഷൻ.

int ( expr )

പൂർണ്ണസംഖ്യയിലേക്ക് ചുരുക്കുന്നു.

log ( expr )

സ്വാഭാവിക ലോഗരിതം പ്രവർത്തനം.

റാൻഡ് ()

0-നും 1-നും ഇടക്കുള്ള റാൻഡം നമ്പർ നൽകുന്നു.

പാപം ( പുറം )

റേഡിയനിൽ ഉള്ള exper ന്റെ സൈൻ നൽകുന്നു.

sqrt ( പുറം )

സ്ക്വയർ റൂട്ട് ഫംഗ്ഷൻ.

srand ( [ പുറം ) ]

റാൻഡം നമ്പർ ജനറേറ്ററിന് പുതിയ വിത്തു ആയി ഉപയോഗിക്കുന്നു. കാലഹരണപ്പെടൽ ഒന്നും നൽകിയിട്ടില്ലെങ്കിൽ, ദിവസം ഉപയോഗിക്കും. റാൻഡം നമ്പർ ജനറേറ്റർക്കുള്ള മുൻ സീഡ് ആണ്.

സ്ട്രിംഗ് ഫംഗ്ഷനുകൾ

Gawk ഇനിപ്പറയുന്ന അന്തർനിർമ്മിത സ്ട്രിംഗ് ഫംഗ്ഷനുകൾ ഉണ്ട്:

asort ( s [ , d ] )

ഉറവിട ശ്രേണികളിലെ ഘടകങ്ങളുടെ എണ്ണം നൽകുന്നു. മൂല്യങ്ങൾ താരതമ്യം ചെയ്യുന്നതിനു് gawk ന്റെ സാധാരണ നിയമങ്ങൾ ഉപയോഗിച്ചു് ക്രമീകരിച്ചിരിയ്ക്കുന്നു, കൂടാതെ s ന്റെ വിലമതിക്കുന്ന മൂല്ല്യങ്ങളുടെ സൂചികകൾ ആരംഭിക്കുന്നു. തുടക്കം മുതൽ, തുടർച്ചയായ പൂർണ്ണസംഖ്യകളോടൊപ്പമാണു് 1 ആണു്. അവശ്യമായൊരു ശ്രേണി നൽകിയിരിയ്ക്കുന്നു എങ്കിൽ, s മുമ്പു് duplicated into duplicate , അതിനുശേഷം ഡ്രോപ് ചെയ്യുക, സോഴ്സ് അറേയുടെ ഇൻഡെക്സുകൾ മാറ്റമില്ലാതെ തുടരുന്നു.

gensub ( r , s , h [ , t ] )

റെഗുലർ എക്സ്പ്രഷൻ r മത്സരങ്ങളിൽ ടാർഗെറ്റ് സ്ട്രിംഗ് t തിരയുക. H , g അല്ലെങ്കിൽ G യിൽ ആരംഭിക്കുന്ന ഒരു സ്ട്രിംഗ് ആണെങ്കിൽ, r കളുമായി ബന്ധപ്പെട്ട എല്ലാ പൊരുത്തങ്ങളും മാറ്റി എഴുതുക . അല്ലെങ്കിൽ, മാറ്റിസ്ഥാപിക്കുന്ന r ഏത് പൊരുത്തത്തെ സൂചിപ്പിക്കുന്നുവോ ഒരു നമ്പർ. T വിതരണം ചെയ്തില്ലെങ്കിൽ, പകരം $ 0 ഉപയോഗിയ്ക്കുന്നു. പകരം വാക്യങ്ങളിൽ, \ n , n എന്നത് 1 മുതൽ 9 വരെയുള്ള ഒരു സംഖ്യയാണ്, n 'വലത് ബ്രണീഷിന്സ്ഡ് ഉപക്സ്പ്രേസുമായി പൊരുത്തപ്പെടുന്ന വാചകം മാത്രം സൂചിപ്പിക്കാനായി ഉപയോഗിക്കാം. പ്രതീകം പോലെ തന്നെ, \ 0 മുഴുവൻ പൊരുത്തപ്പെടുന്ന വാചകത്തെയും പ്രതിനിധീകരിക്കുന്നു. Sub () , gsub () പോലെ, ഫംഗ്ഷൻ ഫലമായി പരിഷ്കരിച്ച സ്ട്രിംഗ് റിട്ടേൺ , യഥാർത്ഥ ടാർജറ്റ് സ്ട്രിംഗ് മാറില്ല.

ജിഎസ്ബ് ( r , s [ , t ] )

സ്ട്രിങ് ടേണിലെ റെഗുലർ എക്സ്പ്രഷൻ റിക്കറ്റുമായി ബന്ധിപ്പിക്കുന്ന ഓരോ സബ്സ്റ്റിറ്റിയായും, സ്ട്രിങ്ങുകൾ മാറ്റി പകരം പകരങ്ങളുടെ എണ്ണം മടക്കി നൽകുക. T നൽകുന്നതല്ലെങ്കിൽ, $ 0 ഉപയോഗിയ്ക്കുക. പകരം & വാചകത്തിൽ യഥാർത്ഥത്തിൽ പൊരുത്തപ്പെടുന്ന വാചകം പകരം വയ്ക്കുക. അക്ഷരീയമായ & ലഭിക്കാൻ \ & ഉപയോഗിക്കുക. (ഇത് "\\ &" എന്ന പേരിൽ ടൈപ്പ് ചെയ്യണം. GAWK: സബ് എക് (gsub () , gsub () , gensub () എന്നീ എഴുത്തുമാസകകളുടെ പിൻവാങ്ങലിനും backslashes ന്റേയും നിയമങ്ങൾ പൂർണ്ണമായി ചർച്ച ചെയ്യുന്നതിനുള്ള ശക്തമായ AWK പ്രോഗ്രാമിങ് കാണുക.

സൂചിക ( s , t )

സ്ട്രിംഗിലെ സ്ട്രിംഗ് t ന്റെ സൂചിക, അല്ലെങ്കിൽ t ഇല്ലാത്ത പക്ഷം 0 നൽകുന്നു. (ഇത് പ്രതീക ഇൻഡിക്കുകൾ ആരംഭിക്കുമ്പോൾ അത് സൂചിപ്പിക്കുന്നു.)

ദൈർഘ്യം ( [ s ] )

സ്ട്രിങ്ങുകളുടെ നീളം നൽകുന്നു , അല്ലെങ്കിൽ s നൽകുന്നില്ലെങ്കിൽ $ 0 ന്റെ ദൈർഘ്യം നൽകുന്നു.

മത്സരം ( s , r [ , a ] )

റെഗുലർ എക്സ്പ്രഷൻ ആർ സംഭവിക്കുന്ന സ്ഥലത്തിന്റെ സ്ഥാനം നൽകുന്നു, അല്ലെങ്കിൽ 0 ഇല്ലെങ്കിൽ r കൂടാതെ RSTART , RLENGTH എന്നിവയുടെ മൂല്യങ്ങൾ ക്രമീകരിക്കുന്നു . Argument ഓർഡർ ~ ഓപ്പറേറ്റർ: str ~ re എന്നതിന് തുല്യമാണ്. ഒരു ശ്രേണി നൽകിയിട്ടുമുണ്ടെങ്കിൽ, ഒരു ക്റമം നിർണ്ണയിക്കുകയും, തുടർന്ന് n ന്റെ ഒരു മൂലകമാണ് r ലെ പരിധിയുള്ള ഉപഗ്രൂപ്പുകളുമായി പൊരുത്തപ്പെടുന്ന s ന്റെ ഭാഗങ്ങളാൽ നിറക്കുകയും ചെയ്യുന്നത്. ഒരു ലെവല ഘടകത്തിൽ ഒരു സാമാന്യ ആവിഷ്കാരണം r ന്റെ പരിധിയുണ്ടെന്നു കാണാം.

വിഭജനം ( s , a [ , r ] )

റെഗുലർ എക്സ്പ്രഷൻ r ൽ സ്ട്രിംഗ് s യിലേക്ക് സെല്ലിൽ സ്പ്രിങ്ങ് ചെയ്യുന്നു, കൂടാതെ ഫീൽഡുകളുടെ എണ്ണം നൽകുന്നു. R ഒഴിവാക്കപ്പെട്ടാൽ, പകരം FS ഉപയോഗിയ്ക്കുന്നു. ഒരു ശ്രേണി ആദ്യം മായ്ച്ചു. വിഭജനം വിഭജിക്കാനായി, മുകളിൽ വിശദീകരിച്ച് പ്രവർത്തിക്കുന്നു.

sprintf ( fmt , expr-list )

Fmt അനുസരിച്ച് പ്രിന്റ് ചെയ്ത പട്ടിക പ്രിന്റ് ചെയ്ത ശേഷം സ്ട്രിംഗ് നൽകുന്നു.

സ്റ്റെറ്റാനം ( സ്ട്രീറ്റ് )

പരിശോധിക്കുന്ന സ്ട്രിൻ , അതിന്റെ സംഖ്യാപരമായ മൂല്യം നൽകുന്നു. സ്ട്രിന്റ് ( 0 ) ആണ് സ്ട്രിംഗ് ( 0 ) ആരംഭിക്കുന്നത് എങ്കിൽ str എന്ന ഒക്ടൽ സംഖ്യയാണു്. ഒരു പ്രധാന 0x അല്ലെങ്കിൽ 0X ഉപയോഗിച്ച് സ്ട്രിംഗ് തുടങ്ങുകയാണെങ്കിൽ, strtonum () നെ ഒരു ഹെക്സാഡെസിമൽ നമ്പറായി കണക്കാക്കുന്നു.

ഉപ ( r , s [ , t ] )

Gsub () പോലെ, പൊരുത്തമുള്ള ആദ്യത്തെ substring മാത്രമേ മാറ്റിയിട്ടുള്ളൂ.

ഉപസ്ട്രി ( എസ് , ഞാൻ [ , എൻ ] )

I മുതൽ ആരംഭിക്കുന്ന മിക്ക n- ക്യുറേറ്റർ സബ്ജറേഷനിലെയും നൽകുന്നു. N ഒഴിവാക്കിയില്ലെങ്കിൽ, ശേഷിക്കുന്ന s ഉപയോഗിക്കും.

ടവർ (സ്ട്രാവു )

സ്ട്രിംഗ് സ്ട്രിൻറെ ഒരു പകർപ്പ് സ്ട്രിംഗ് ചെയ്യുമ്പോൾ, എല്ലാ അപ്പർ-കെയ്സ് പ്രതീകങ്ങളുമായി തർജ്ജമ ചെയ്ത കീഴ്-കേസ് എതിരാളങ്ങളിലേയ്ക്ക് വിവർത്തനം ചെയ്യുന്നു. അക്ഷരങ്ങളല്ലാത്ത അക്ഷരങ്ങൾ മാറ്റമില്ലാതെ തുടരുന്നു.

ടർപ്പർ ( സ്ട്രീറ്റ് )

സ്ട്രിംഗ് str എന്നതിന്റെ ഒരു പകർപ്പ് സ്ട്രിംഗ് ചെയ്യുമ്പോൾ, അക്ഷരത്തിലുള്ള എല്ലാ ചെറിയ അക്ഷരങ്ങളും അവയുമായി ബന്ധപ്പെട്ട അപ്പർ-കെയ്സ് എതിരാളങ്ങളിലേക്ക് വിവർത്തനം ചെയ്യുന്നു. അക്ഷരങ്ങളല്ലാത്ത അക്ഷരങ്ങൾ മാറ്റമില്ലാതെ തുടരുന്നു.

സമയം ഫംഗ്ഷനുകൾ

സമയദൈർഘ്യം സംബന്ധിച്ച വിവരങ്ങൾ ഉൾക്കൊള്ളുന്ന ലോഗ് ഫയലുകൾ പ്രോസസ് ചെയ്യുന്നതിനാൽ AWK പ്രോഗ്രാമുകളുടെ പ്രാഥമിക ഉപയോഗങ്ങളിലൊന്നായ സമയ സ്റ്റാമ്പുകൾ ലഭ്യമാക്കുന്നതിനും ഫോർമാറ്റിംഗിനും താഴെ പറയുന്ന പ്രവർത്തനങ്ങൾ നൽകുന്നു.

mktime ( datespec )

ഒരിക്കൽ സിമ്മിമേറ്റ് () വഴി ലഭിച്ച അതേ ഫോം സ്റ്റാമ്പിലേക്ക് തിമിർപ്പിക്കുന്നു . തീയതികൾ ഒരു രൂപമാണ് YYYY MM DD HH MM SS [DST] . നൂറുകണക്കിന് വർഷം, 1 മുതൽ 12 വരെ മാസം, 1 മുതൽ 31 വരെ ദിവസം, 0 മുതൽ 23 വരെയുള്ള മണിക്കൂറുമുള്ള പ്രതിവർഷം ആറാം അല്ലെങ്കിൽ ഏഴ് നമ്പരുകളാണ് സ്ട്രിംഗിലുള്ളത്. 59, രണ്ടാമത്തേത് 0 മുതൽ 60 വരെയും ഒരു ഓപ്ഷണൽ പകൽ സംരക്ഷിക്കുന്ന കൊടി. ഈ സംഖ്യകളുടെ മൂല്യങ്ങൾ വ്യക്തമാക്കിയിട്ടുള്ള ശ്രേണികളിലല്ല ഉള്ളത്; ഉദാഹരണത്തിന്, ഒരു മണിക്കൂർ -1 എന്നത് അർദ്ധരാത്രിക്ക് 1 മണിക്കൂർ മുൻപാണ്. പൂജ്യം-പൂജ്യം ഗ്രിഗോറിയൻ കലണ്ടർ കണക്കാക്കപ്പെടുന്നു. വർഷത്തിനുമുമ്പുള്ള വർഷവും 1-ഉം 1-ാം വർഷവും 0-ഉം. പ്രാദേശിക സമയം സമയമായി കണക്കാക്കപ്പെടുന്നു. പകൽസമയത്തെ സംരക്ഷിക്കുന്ന ഫ്ലാഗ് പോസിറ്റീവ് ആണെങ്കിൽ, സമയം പകൽ സമയം ലാഭിക്കാൻ സമയമായിരിക്കുന്നു; പൂജ്യം എങ്കിൽ, സമയം നിശ്ചിത സമയമായി കണക്കാക്കും; നെഗറ്റീവ് (സ്വതവേയുള്ള), mktime () നൽകിയിട്ടുണ്ടെങ്കിൽ, നിശ്ചിത സമയത്തേക്കുള്ള പകൽ സാവകാശം സമയമാണോ എന്ന് നിർണ്ണയിക്കാൻ ശ്രമിക്കുന്നു. Datepec- ൽ മതിയായ ഘടകങ്ങളില്ലെങ്കിൽ അല്ലെങ്കിൽ അതിൻറെ സമയ പരിധിക്ക് പുറത്താണെങ്കിൽ mktime () returns -1.

strftime ( [ ഫോർമാറ്റ് [ , ടൈംസ്റ്റാമ്പ് ] )

ഫോർമാറ്റിൽ വ്യക്തത അനുസരിച്ച് സമയസ്റ്റാമ്പ് ഫോർമാറ്റുകൾ. സിസ്റ്റമൈം () ഉപയോഗിച്ച് തിരിച്ചെടുത്ത അതേ ശൈലിയിൽ ടൈംസ്റ്റാമ്പ് ആയിരിക്കണം. ടൈംസ്റ്റാമ്പ് കാണുന്നില്ലെങ്കിൽ, നിലവിലെ സമയം ഉപയോഗിക്കും. ഫോർമാറ്റ് കാണുന്നില്ലെങ്കിൽ, തീയതി (1) ന്റെ ഔട്ട്പുട്ടിനു തുല്യമായ ഒരു സ്ഥിര ഫോർമാറ്റ് ഉപയോഗിക്കുന്നു. ലഭ്യമായ ഗ്യാരണ്ടി ലഭ്യമാക്കുന്ന ഫോർമാറ്റിലെ പരിവർത്തനങ്ങൾക്കായി ANSI C ൽ strftime () ഫംഗ്ഷനുളള പ്രത്യേകതകൾ കാണുക. Strftime (3) എന്ന പൊതു-ഡൊമെയ്ൻ പതിപ്പും, ഒരു മാൻ പേജും Gawk ഉപയോഗിച്ച് വരും; Gawk നിർമ്മിക്കാൻ ആ പതിപ്പ് ഉപയോഗിച്ചിരുന്നെങ്കിൽ, ആ മാൻ താളിൽ വിശദീകരിച്ചിട്ടുള്ള എല്ലാ മാര്ഗങ്ങളും gawk- ൽ ലഭ്യമാണ് .

systime ()

Epoch- നു ശേഷം സെക്കന്റുകൾക്കുള്ള എണ്ണത്തെ ഇപ്പോഴുള്ള സമയം നൽകുന്നു (1970-01-01 00:00:00 POSIX സിസ്റ്റങ്ങളിൽ UTC).

ബിറ്റ് മാനിപുലേഷൻ ഫങ്ഷനുകൾ

Gawk ന്റെ 3.1 പതിപ്പിൽ ആരംഭിക്കുന്ന, ഇനിപ്പറയുന്ന ബിറ്റ് കെയ്ഷൂട്ടൽ ഫംഗ്ഷനുകൾ ലഭ്യമാണ്. ഇരട്ട-കൃത്യതയിലുള്ള ഫ്ലോട്ടിംഗ് പോയിന്റ് മൂല്യങ്ങൾ കൈമാറ്റം ചെയ്യാത്ത ദീർഘ പൂർണ്ണസംഖ്യകളായി പരിവർത്തനം ചെയ്ത് പ്രവർത്തിക്കുന്നു, തുടർന്ന് ഫലം വീണ്ടും ഫ്ലോട്ടിംഗ് പോയിന്റിലേക്ക് പരിവർത്തനം ചെയ്യുന്നു. പ്രവർത്തനങ്ങൾ:

( v1 , v2 )

V1 , v2 എന്നിവ നൽകിയ മൂല്യങ്ങളുടെ ബിട്വൈറ്റും തിരിച്ചും നൽകുക.

പരാതി (വില )

വാലിയുടെ ബിഡ് വൈറസ് പരിപൂർണ്ണതയിലേക്ക് തിരികെ പോകുക.

lshift ( val , എണ്ണം )

മൂല്യത്തിന്റെ മൂല്യം മടക്കി , ബിറ്റുകൾ ഉപയോഗിച്ച് അവശേഷിക്കുന്നു.

അല്ലെങ്കിൽ ( v1 , v2 )

V1 , v2 എന്നിവ നൽകുന്ന മൂല്യങ്ങളുടെ ബിറ്റ്വൈമാണ് അല്ലെങ്കിൽ OR മടക്കി നൽകുക.

rshift ( val , എണ്ണം )

മൂല്യത്തിന്റെ മൂല്യം തിരിച്ചയക്കുക , ആകെ ബിറ്റുകൾ ഉപയോഗിച്ച് മാറ്റിമാറ്റുക.

xor ( v1 , v2 )

V1 , v2 എന്നിവ നൽകുന്ന മൂല്യങ്ങളുടെ ബിറ്റ്വൈസ് XOR മടക്കിനൽകുക .

അന്താരാഷ്ട്രവൽക്കരണ പ്രവർത്തനങ്ങൾ

Gawk ന്റെ 3.1 പതിപ്പ് മുതൽ, നിങ്ങളുടെ AWK പ്രോഗ്രാമിനുള്ളിൽ റൺടൈമുകൾക്കായി വിവർത്തനം ചെയ്യാനായി താഴെപ്പറയുന്ന സവിശേഷതകൾ ഉപയോഗിക്കാം. കൂടുതൽ വിശദാംശങ്ങൾക്ക്, GAWK കാണുക : ഫലപ്രദമായ AWK പ്രോഗ്രാമിംഗ് .

bindtextdomain ( ഡയറക്ടറി [ , ഡൊമെയ്ൻ ] )

മോഡിഫയലുകൾക്കായി gawk അന്വേഷിക്കുന്ന ഡയറക്ടറി വ്യക്തമാക്കുന്നു. "സ്റ്റാൻഡേർഡ്" ലൊക്കേഷനുകളിൽ (ഉദാ. പരീക്ഷണത്തിനിടയിലോ) ഇത് സ്ഥാപിക്കാനാകില്ലെങ്കിൽ. ഇത് ഡൊമെയ്ൻ നൽകേണ്ട ഡയറക്ടറി നൽകുന്നു, `` ബന്ധിതമാണ്. ''

സ്ഥിരസ്ഥിതി ഡൊമെയ്ൻ TEXTDOMAIN ന്റെ മൂല്യമാണ് . ഡയറക്ടറി പൂജ്യം സ്ട്രിംഗ് ( "" ) ആണെങ്കിൽ, bindtextdomain () നൽകിയിരിക്കുന്ന ഡൊമെയിനായുള്ള നിലവിലെ ബൈൻഡ് നൽകുന്നു.

dcgettext ( സ്ട്രിംഗ് [ , ഡൊമെയിൻ [ , വിഭാഗം ]] )

ഭാഷ വിഭാഗം വിഭാഗത്തിനായി വാചക ഡൊമെയ്നിന്റെ ഡൊമെയ്നിൽ സ്ട്രിംഗിന്റെ വിവർത്തനം നൽകുന്നു. ഡൊമെയ്നിന്റെ സ്ഥിര മൂല്യം TEXTDOMAIN ന്റെ നിലവിലെ മൂല്യമാണ്. വിഭാഗത്തിന്റെ സ്ഥിര മൂല്യം "LC_MESSAGES" ആണ് .

നിങ്ങൾ വിഭാഗത്തിനായുള്ള ഒരു മൂല്യം നൽകുകയാണെങ്കിൽ, അത് GAWK- ൽ ഫലപ്രദമായി AWK പ്രോഗ്രാമിംഗിൽ വിവരിച്ചിരിക്കുന്ന അറിയപ്പെടുന്ന ഒരു ഭാഷാ വിഭാഗത്തിന് തുല്യമായ ഒരു സ്ട്രിംഗ് ആയിരിക്കണം. നിങ്ങൾ ഒരു ടെക്സ്റ്റ് ഡൊമെയിൻ നൽകണം. നിലവിലെ ഡൊമെയ്ൻ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ TEXTDOMAIN ഉപയോഗിക്കുക.

dcngettext ( string1 , string2 , നമ്പർ [ , ഡൊമെയിൻ [ , വിഭാഗം ]] )

ഭാഷ വിഭാഗ വിഭാഗത്തിന് ടെക്സ്റ്റ് ഡൊമെയ്ൻ ഡൊമെയ്നിൽ സ്ട്രിംഗ് 1 , സ്ട്രിംഗ് 2 എന്നിവയുടെ വിവർത്തനത്തിനായി ഉപയോഗിച്ചിരിക്കുന്ന ബഹുവചന രൂപം നൽകുന്നു. ഡൊമെയ്നിന്റെ സ്ഥിര മൂല്യം TEXTDOMAIN ന്റെ നിലവിലെ മൂല്യമാണ്. വിഭാഗത്തിന്റെ സ്ഥിര മൂല്യം "LC_MESSAGES" ആണ് .

നിങ്ങൾ വിഭാഗത്തിനായുള്ള ഒരു മൂല്യം നൽകുകയാണെങ്കിൽ, അത് GAWK- ൽ ഫലപ്രദമായി AWK പ്രോഗ്രാമിംഗിൽ വിവരിച്ചിരിക്കുന്ന അറിയപ്പെടുന്ന ഒരു ഭാഷാ വിഭാഗത്തിന് തുല്യമായ ഒരു സ്ട്രിംഗ് ആയിരിക്കണം. നിങ്ങൾ ഒരു ടെക്സ്റ്റ് ഡൊമെയിൻ നൽകണം. നിലവിലെ ഡൊമെയ്ൻ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ TEXTDOMAIN ഉപയോഗിക്കുക.

USER- നിഷ്കർഷ ഫങ്ഷനുകൾ

AWK ലെ പ്രവർത്തനങ്ങൾ ഇപ്രകാരമാണ്:

ഫംഗ്ഷൻ നാമം ( പരാമീറ്റർ ലിസ്റ്റ് ) { statements }

ഫങ്ഷനുകൾ പാറ്റേണുകളിലോ പ്രവർത്തനങ്ങളിലോ പ്രകടനങ്ങൾക്കുള്ളിൽ നിന്ന് വിളിക്കുമ്പോൾ അവ എക്സിക്യൂട്ട് ചെയ്യപ്പെടും. ഫംഗ്ഷൻ കോളിൽ അവതരിപ്പിച്ച യഥാർത്ഥ പരാമീറ്ററുകൾ പ്രവർത്തനത്തിൽ പ്രഖ്യാപിച്ച ഔപചാരികമായ പരാമീറ്ററുകൾ ഉപയോഗപ്പെടുത്താൻ ഉപയോഗിക്കുന്നു. ശ്രേണികൾ റഫറൻസ് പാസ്സാക്കപ്പെടുന്നു, മറ്റ് വേരിയബിളുകൾ മൂല്യങ്ങൾ വഴി കടന്നുപോകുന്നു.

പ്രവർത്തനങ്ങൾ യഥാർത്ഥത്തിൽ AWK ഭാഷയുടെ ഭാഗമായിരുന്നില്ല എന്നതിനാൽ, പ്രാദേശിക വേരിയബിളുകൾക്കുള്ള വ്യവസ്ഥ വളരെ വിരളമാണ്: അവ പരാമീറ്റർ ലിസ്റ്റിലെ അധിക പരാമീറ്ററുകളായി പ്രഖ്യാപിക്കുന്നു. പാരാമീറ്റർ ലിസ്റ്റിലെ അധിക സ്പേസുകളിലൂടെ യഥാർത്ഥ ചരങ്ങളെയെല്ലാം പ്രാദേശിക വേരിയബിളുകൾ വേർതിരിക്കുന്നത് കൺവെൻഷൻ ആണ്. ഉദാഹരണത്തിന്:

ഫങ്ഷൻ f (p, q, a, b) # a, b എന്നിവ പ്രാദേശികവും {...} / abc / {...; f (1, 2); ...}

വൈറ്റ് സ്പേസ് ഇടപെടാതെ, ഫംഗ്ഷൻ നാമത്തിനു് ഒരു ഫംഗ്ഷൻ കോളത്തിൽ ഇടതുവശത്തെ പരാന്തിസിസ് ആവശ്യമാണു്. സങ്കലന ഓപ്പറേറ്റർമാരുമായുള്ള ഒരു വാക്യഘടകം ഒഴിവാക്കണം. മുകളിൽ പറഞ്ഞിരിക്കുന്ന അന്തർനിർമ്മിതമായ ഫംഗ്ഷനുകൾക്ക് ഈ നിയന്ത്രണം ബാധകമല്ല.

ഫങ്ഷനുകൾ പരസ്പരം വിളിക്കും, അവ പുനർജനകമായേക്കാം. ലോക്കൽ വേരിയബിളുകളായി ഉപയോഗിച്ചിട്ടുള്ള ഫങ്ഷൻ പാരാമീറ്ററുകൾ നൾ സ്ട്രിംഗിലേക്ക് ആരംഭിക്കുകയും ഫങ്ഷൻ ഇൻവോക്കേഷൻ സമയത്ത് പൂജ്യം സംഖ്യയിലേക്ക് ആരംഭിക്കുകയും ചെയ്യുന്നു.

ഒരു ഫങ്ഷനിൽ നിന്ന് ഒരു മൂല്യം മടക്കിനൽകുന്നതിനായി മടങ്ങുക ഇടപാട് ഉപയോഗിക്കുക. മൂല്യമൊന്നും നൽകിയില്ലെങ്കിൽ തിരിച്ചടവ് വ്യക്തമല്ല, അല്ലെങ്കിൽ ഫംഗ്ഷൻ '' ഓഫ് ഫൊൾ ഓഫ് '' അവസാനിപ്പിക്കുകയാണെങ്കിൽ.

ലിനക്ടിനു് നൽകിയിരിയ്ക്കുന്നു എങ്കിൽ, റൺ സമയത്തു് പകരം നിഷ്കർഷണമുള്ള പ്രവർത്തനങ്ങളിലേക്കു് കോളുകൾ മുന്നറിയിപ്പ് നൽകുന്നു. റൺ സമയത്ത് ഒരു നിർവ്വചിത ഫംഗ്ഷൻ വിളിക്കുന്നത് ഒരു ഗുരുതരമായ പിശക് ആണ്.

ഫങ്ഷന്റെ സ്ഥാനത്ത് ഫൺ എന്ന വാക്ക് ഉപയോഗിക്കാം.

ഡൈനാമിളിയിൽ ലോഡ് ചെയ്യുന്ന പുതിയ പ്രവർത്തനങ്ങൾ

Gawk ന്റെ പതിപ്പ് 3.1 ൽ ആരംഭിക്കുന്നത്, നിങ്ങൾ പ്രവർത്തിക്കുന്ന gawk ഇന്റർപ്രെട്ടറിലേക്ക് പുതിയ ബിൽറ്റ്-ഇൻ ഫംഗ്ഷനുകളെ ചലനാത്മകമായി ചേർക്കാൻ കഴിയും. പൂർണ്ണമായ വിവരങ്ങൾ ഈ മാനുവൽ പേജിന്റെ പരിധിക്ക് പുറത്താണ്; GAWK കാണുക : വിശദാംശങ്ങൾക്കായി നല്ല AWK പ്രോഗ്രാമിംഗ് .

വിപുലീകരണം ( ഒബ്ജക്ട് , ഫംഗ്ഷൻ )

ഒബ്ജക്റ്റ് പ്രകാരം പങ്കിടുന്ന ഓബ്ജക്റ്റ് ഫയൽ ഡൈനമിക്കായി ലിങ്ക് ചെയ്തു, ആ ഒബ്ജക്റ്റിൽ പ്രവർത്തനം ആരംഭിക്കുക, തുടക്കമിടുക. ഇവ രണ്ടും സ്ട്രിംഗുകളായി നൽകണം. ഫംഗ്ഷൻ നൽകിയ മൂല്യം നൽകുന്നു.

ഈ ഫംഗ്ഷൻ GAWKനൽകിയിരിക്കുന്നു: പ്രാവർത്തികമായ AWK പ്രോഗ്രാമിംഗ് , എന്നാൽ ഈ ഫീച്ചറിനെക്കുറിച്ചുള്ള എല്ലാം അടുത്ത റിലീസിൽ മാറ്റാൻ സാധ്യതയുണ്ട്. നിങ്ങൾ ഈ ഫീച്ചർ പുനർവിചിന്തനം ചെയ്യാൻ തയ്യാറാകാത്ത ഏതെങ്കിലും കാര്യത്തിനായി ഉപയോഗിക്കരുതെന്ന് ഞങ്ങൾ തീർച്ചയായും നിർദ്ദേശിക്കുന്നു.

സിഗ്നലുകൾ

pgawk രണ്ടു സിഗ്നലുകൾ സ്വീകരിക്കുന്നു. SIGUSR1 ഒരു പ്രൊഫൈൽ, ഫങ്ഷൻ കോൾ സ്റ്റാക്ക്, അതു് awkprof.out അല്ലെങ്കിൽ പ്രൊഫൈൽ ഫയലിനായി --profile ഐച്ഛികം നൽകിയിരിക്കും. പിന്നെ അത് തുടരുന്നു. SIGHUP അത് പ്രൊഫൈലിലേയും ഫംഗ്ഷനിലേയും കോൾ സ്റ്റാക്ക് ഉപേക്ഷിച്ച് പുറത്തുകടക്കുന്നു.

EXAMPLES

എല്ലാ ഉപയോക്താക്കളുടെയും ലോഗിൻ നാമങ്ങൾ അച്ചടിച്ച് അടുക്കുക: BEGIN {FS = ":"} {print $ 1 | "sort"}} ഒരു ഫയലിൽ വരികൾ എണ്ണുക: {nlines ++} END {print nlines} ഫയലിൽ ഓരോ വരിയും അതിന്റെ മുൻഗണനകളായി മുന്നോട്ടുവയ്ക്കുക : {print FNR, $ 0} കോൺകണേറ്റ് കൂടാതെ ലൈൻ നമ്പർ (ഒരു തീം വ്യത്യാസം): {print nr, $ 0}

ആന്തരികീകരണം

ഇരട്ട ഉദ്ധരണികളിൽ അടങ്ങിയ പ്രതീകങ്ങളുടെ വരികളാണ് സ്ട്രിംഗ് സ്ഥിരാങ്കങ്ങൾ. നോൺ-ഇംഗ്ലീഷ് സംസാരിക്കുന്ന പരിസ്ഥിതികളിൽ, തദ്ദേശീയ ഭാഷയിലേക്കുള്ള വിവർത്തനം ആവശ്യപ്പെടുന്നതുപോലെ AWK പ്രോഗ്രാമിൽ സ്ട്രിംഗുകൾ അടയാളപ്പെടുത്താൻ കഴിയും. അത്തരത്തിലുള്ള സ്ട്രിംഗുകൾ AWK പ്രോഗ്രാമിന് മുന്നിൽ അടിവരയിട്ടു (`_ '') അടയാളപ്പെടുത്തിയിരിയ്ക്കുന്നു. ഉദാഹരണത്തിന്,

gawk 'BEGIN {പ്രിന്റ് "ഹലോ, ലോകം"}'

എല്ലായ്പ്പോഴും ഹലോ, ലോകത്തെ പ്രിന്റ് ചെയ്യുന്നു. പക്ഷേ,

gawk 'BEGIN {print _ "ഹലോ, ലോകം"}'

ഫ്രാൻസിൽ ബോൺജോർ, മോണ്ടെ അച്ചടിച്ചേക്കാം.

പ്രാദേശികവൽക്കരിക്കപ്പെട്ട AWK പരിപാടി ഉൽപ്പാദിപ്പിക്കാനും പ്രവർത്തിപ്പിക്കാനും നിരവധി നടപടികളുണ്ട്.

1.

നിങ്ങളുടെ പ്രോഗ്രമായി ബന്ധപ്പെട്ട ഒരു പേരിലേക്ക് ടെക്സ്റ്റ് ഡൊമെയ്ൻ സജ്ജമാക്കാൻ TEXTDOMAIN വേരിയബിളിനായി ഒരു മൂല്യം നൽകുന്നതിന് BEGIN നടപടി ചേർക്കുക.


BEGIN {TEXTDOMAIN = "myprog"}

നിങ്ങളുടെ പ്രോഗ്രമായി ബന്ധപ്പെട്ട മോ മോപ്പ് ഫയൽ കണ്ടുപിടിക്കാൻ ഇത് Gawk അനുവദിക്കുന്നു. ഈ ഘട്ടം കൂടാതെ, ഗേക്ക് സന്ദേശങ്ങളുടെ ടെക്സ്റ്റ് ഡൊമെയ്ൻ ഉപയോഗിക്കുന്നു, നിങ്ങളുടെ പ്രോഗ്രാമിനുള്ള വിവർത്തനങ്ങൾ സാധ്യതയല്ല.

2.

മുൻവശത്തെ അണ്ടർസ്കോറുകൾ കൊണ്ട് വിവർത്തനം ചെയ്യേണ്ട എല്ലാ സ്ട്രിംഗുകളും അടയാളപ്പെടുത്തുക.

3.

ആവശ്യമെങ്കിൽ, നിങ്ങളുടെ പ്രോഗ്രാമിൽ dcgettext () കൂടാതെ / അല്ലെങ്കിൽ bindtextdomain () ഫംഗ്ഷനുകൾ ഉപയോഗിക്കുക.

4.

നിങ്ങളുടെ പ്രോഗ്രാമിനായി ഒരു .po ഫയൽ സൃഷ്ടിക്കുന്നതിനായി gaoc --gen-po -f myprog.awk> myprog.po പ്രവർത്തിപ്പിക്കുക .

5.

അനുയോജ്യമായ വിവർത്തനങ്ങൾ നൽകുക, കൂടാതെ ബന്ധപ്പെട്ട ഫയൽ തയ്യാറാക്കുകയും ഇൻസ്റ്റാൾ ചെയ്യുകയും ചെയ്യുക.

ഇന്റർനാഷണലൈസേഷൻ ഫീച്ചറുകൾ GAWK ൽ വിശദമായി വിവരിക്കുന്നു : ഫലപ്രദമായ AWK പ്രോഗ്രാമിംഗ് .

പോസിക്സ് കോംപാറ്റിബിളിറ്റി

ഗോസിനു് ഒരു പ്രധാന ലക്ഷ്യം പോസിക്സ് സ്റ്റാൻഡേർഡിനൊപ്പം യുണിക്സ് എക്സ്റ്റിന്റെ ഏറ്റവും പുതിയ പതിപ്പുമായി പൊരുത്തപ്പെടുന്നു. ഇതിനു വേണ്ടി, AWK പുസ്തകത്തിൽ വിവരിച്ചിട്ടില്ലാത്ത ഇനിപ്പറയുന്ന ഉപയോക്താവിനുള്ള ഫീച്ചറുകൾ Gawk ഉൾക്കൊള്ളുന്നു, പക്ഷേ ബെൽ ലബോറട്ടറീസ് പതിപ്പ് ഒരു ഭാഗമാണ്, കൂടാതെ ഇത് പോസിക്സ് സ്റ്റാൻഡേർഡിലാണുള്ളത്.

ഒരു ഫയൽ എന്ന രീതിയിൽ ആർഗ്യുമെന്റിനെ തുറക്കുമ്പോളുള്ള കമാൻഡ് ലൈൻ വേരിയബിൾ അസൈൻമെൻറ് നടക്കുന്നുവെന്നാണ് പുസ്തകം സൂചിപ്പിക്കുന്നത്, അത് BEGIN ബ്ലോക്ക് എക്സിക്യൂട്ട് ചെയ്ത ശേഷം ആണ്. എന്നിരുന്നാലും, മുമ്പ് നടപ്പിലാക്കിയതിൽ, അത്തരം ഒരു അസൈൻമെൻറ് ഏതെങ്കിലും ഫയൽ പേരുകൾക്ക് മുമ്പ് പ്രത്യക്ഷപ്പെട്ടപ്പോൾ, BEGIN ബ്ലോക്ക് പ്രവർത്തിപ്പിക്കുന്നതിന് മുൻപ് അസൈൻമെൻറ് നടക്കും. ആപ്ലിക്കേഷനുകൾ ഇതിനെ `` സവിശേഷത '' എന്നതിനെ ആശ്രയിച്ചിരുന്നു. '' അതിന്റെ ഡോക്യുമെന്റേഷനുമായി പൊരുത്തപ്പെട്ടു മാറ്റപ്പെട്ടപ്പോൾ, പ്രോഗ്രാമിനെ എക്സിക്യൂട്ട് ചെയ്യുന്നതിനു മുമ്പായി വേരിയബിളുകൾ നൽകുന്നതിന് -v ഓപ്ഷൻ ചേർത്തിരുന്നു പഴയ സ്വഭാവത്തെ ആശ്രയിച്ചുള്ള പ്രയോഗങ്ങളെ ഉൾക്കൊള്ളിക്കുക. (ബെൽ ലാബോറട്ടറികളും ഗ്നു ഡവലപ്പർമാരും ഈ സവിശേഷത അംഗീകരിച്ചു.)

POSIX സ്റ്റാൻഡേർഡിൽ നിന്നും നടപ്പിലാക്കുന്ന നിർദ്ദിഷ്ട സവിശേഷതകൾക്കുള്ള -W ഓപ്ഷൻ.

ആർഗ്യുമെന്റുകൾ പ്രോസസ്സ് ചെയ്യുമ്പോൾ, വാദങ്ങൾ അവസാനിച്ചാൽ, '' - '' പ്രത്യേക ഓപ്ഷൻ ഉപയോഗിക്കും. അനുയോജ്യതാ മോഡിൽ, ഇതു് മുന്നറിയിപ്പു് നൽകുന്നുവെങ്കിലും അതു് വ്യക്തമല്ലാത്ത ഐച്ഛികങ്ങൾ അവഗണിക്കുന്നു. സാധാരണ പ്രവർത്തനത്തിൽ, ആ വാദം നടപ്പിലാക്കുന്നതിന് അതിനെ AWK പ്രോഗ്രാമിലേക്ക് കൈമാറുന്നു.

AWK പുസ്തകം srand () എന്ന റിട്ടേൺ മൂല്യം നിർവ്വചിക്കുന്നില്ല. POSIX സ്റ്റാൻഡേർഡ് അത് ഉപയോഗിച്ചുണ്ടാക്കിയ വിത്ത് തിരികെ നൽകുന്നു, ക്രമമില്ലാത്ത സംഖ്യകളുടെ ട്രാക്ക് സൂക്ഷിക്കാൻ അനുവദിക്കുക. അതിനാൽ srand () gawk ൽ അതിന്റെ ഇപ്പോഴത്തെ സന്തതി തിരികെ നൽകുന്നു.

മറ്റ് പുതിയ സവിശേഷതകൾ: ഒന്നിലധികം- f ഓപ്ഷനുകൾ ഉപയോഗം (MKS awk നിന്ന് ); ENVIRON ശ്രേണി; \ a , \ v escape sequences ( gawk- ൽ ആദ്യം ചെയ്തത്, ബെൽ ലബോറട്ടറീസ് പതിപ്പിൽ തിരികെ വിളിക്കുന്നു); ടോള്വര് () , തൊപ്പിയര് () ബില്ട് -ഇന് ഫംഗ്ഷനുകള് (ബെല് ലബോറട്ടറീസ് പതിപ്പ് മുതല്); പ്രിന്റ് ചെയ്യുമ്പോൾ ആൻസി സി കൺവെർഷൻ സ്പെസിഫിക്കേഷനുകൾ (ബെൽ ലബോറട്ടറീസ് പതിപ്പിൽ ആദ്യം ചെയ്തത്).

ചരിത്രപരമായ സവിശേഷതകൾ

Gawk പിന്തുണയ്ക്കുന്ന ചരിത്രമുള്ള AWK നടപ്പാക്കലിന്റെ രണ്ട് സവിശേഷതകൾ ഉണ്ട്. ഒന്നാമത്തേത്, വാദം () നിർവചിച്ചിരിക്കുന്ന ഫങ്ഷനെക്കുറിച്ച് മാത്രമല്ല വാസ്തവത്തിൽ മാത്രമല്ല, പരാൻതീസിസ് ഇല്ലാതെ തന്നെ വിളിക്കാം. അങ്ങനെ,

a = ദൈർഘ്യം # പരിശുദ്ധ അൾഗോ 60, ബാറ്റ്മാൻ!

ഒന്നാമത്തേത് പോലെ തന്നെയാണ്

a = ദൈർഘ്യം ()
a = ദൈർഘ്യം ($ 0)

ഈ സവിശേഷത POSIX സ്റ്റാൻഡേർഡിൽ `ഒഴിവാക്കിയത് 'എന്ന് അടയാളപ്പെടുത്തി, കമാൻഡ് ലൈനിൽ --lint വ്യക്തമാക്കിയാൽ അതിന്റെ ഉപയോഗത്തെക്കുറിച്ച് മുന്നറിയിപ്പ് നൽകുന്നു.

മറ്റൊരു സവിശേഷത, തുടരുന്നതിന് അല്ലെങ്കിൽ ഒരു കാലത്തിനു ശേഷമുള്ള ബ്രേക്ക് സ്റ്റേറ്റ്മെന്റുകൾ, അല്ലെങ്കിൽ ലൂപ്പ് ചെയ്യുക എന്നതാണ്. പരമ്പരാഗത AWK ഓപറേഷനുകൾ അടുത്ത പ്രസ്താവനയ്ക്ക് തുല്യം പോലുള്ള ഉപയോഗത്തെ പരിഗണിക്കുന്നു. - പാരാസിറ്റിനെ സൂചിപ്പിച്ചെങ്കിൽ Gawk ഈ ഉപയോഗം പിന്തുണയ്ക്കുന്നു.

ഗ്നു എക്സ്റ്റൻഷനുകൾ

GOC ന് POSIX വരെയുളള നിരവധി വിപുലീകരണങ്ങളുണ്ട്. അവ ഈ വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്നു. ഇവിടെ വിശദീകരിച്ചിട്ടുള്ള എല്ലാ വിപുലീകരണങ്ങളും --traditional ഐച്ഛികം ഉപയോഗിച്ചു് gawk ലഭ്യമാക്കി പ്രവർത്തന രഹിതമാണു് .

POSIX awk ൽ gax ന്റെ താഴെപ്പറയുന്ന സവിശേഷതകൾ ലഭ്യമല്ല.

*

-f ഐച്ഛികം വഴിയുള്ള പേരിൽ ഫയലുകൾക്കായി പാത്ത് തെരച്ചിൽ ഒന്നും ചെയ്തിട്ടില്ല. അതിനാൽ AWKPATH എൻവിറോൺമെൻറ് വേരിയബിൾ പ്രത്യേകമല്ല.

*

\ X escape sequence. (അപ്രാപ്തമാക്കി --posix .)

*

Fflush () ഫംഗ്ഷൻ. (അപ്രാപ്തമാക്കി --posix .)

*

ലൈനുകൾ തുടരുന്നതിനുള്ള ശേഷി ? കൂടാതെ :. (അപ്രാപ്തമാക്കി --posix .)

*

എ.ഡബ്ല്യു.കെ പ്രോഗ്രാമുകളിൽ ഓക്കലും ഹെക്സാഡെസിമൽ കോൺടെന്റുകളും.

*

ARGIND , BINMODE , ERRNO , LINT , RT , TEXTDOMAIN വേരിയബിളുകൾ പ്രത്യേക അല്ല.

*

ഇക്കണറ്റീസ് വ്യതിയാനവും അതിന്റെ പാർശ്വഫലങ്ങളും ലഭ്യമല്ല.

*

FIELDWIDTHS വേരിയബിൾ, നിശ്ചിത-വീതി ഫീൽഡ് വിഭജനം.

*

PROCINFO ശ്രേണി ലഭ്യമല്ല.

*

ഒരു സാധാരണ പദപ്രയോഗം ആയി ആർഎസ് ഉപയോഗം.

*

ഐ / ഒ റീഡയറക്ഷൻക്കുള്ള പ്രത്യേക ഫയൽ നാമങ്ങൾ ലഭ്യമല്ല.

*

| + സഹസംവിധാനം സൃഷ്ടിക്കുന്നതിനുള്ള |

*

ഫോൾസിന്റെ മൂല്യം പോലെ ശൂന്യമായ സ്ട്രിംഗ് ഉപയോഗിച്ച് വ്യക്തിഗത പ്രതീകങ്ങൾ വേർതിരിക്കാനുള്ള ശേഷി, കൂടാതെ split () എന്നതിനുള്ള മൂന്നാമത്തെ ആർഗ്യുമെന്റ്.

*

() ഫംഗ്ഷനൽ ഓപ്ഷണൽ രണ്ടാമത്തെ ആർഗ്യുമെന്റ്.

*

Match () ഫംഗ്ഷനായി ഓപ്ഷണലായുള്ള മൂന്നാമത്തെ ആർഗ്യുമെന്റ്.

*

പ്രിൻറ്ഫും സ്പ്രിന്റ്ഫും () ഉപയോഗിച്ച് positional specifiers ഉപയോഗിക്കുന്നതിനുള്ള കഴിവ്.

*

ഒരു അറേയുടെ മുഴുവൻ ഉള്ളടക്കങ്ങളും ഇല്ലാതാക്കാൻ ഇല്ലാതാക്കുക ശ്രേണി ഉപയോഗം.

*

നിലവിലെ ഇൻപുട്ട് ഫയലിന്റെ പ്രോസസ്സ് ഉപേക്ഷിക്കുന്നതിനുള്ള അടുത്ത ഫയൽ ഉപയോഗിക്കുക.

*

Rtift () , strftime () , strtonum () , systime () , ബാക്കെന്റ് () , bindtextdomain () , dcgettext () , gensub () , lshift () , mktime () () , xor () ഫംഗ്ഷനുകൾ.

*

പ്രാദേശികവൽക്കരിക്കാവുന്ന സ്ട്രിംഗുകൾ.

*

എക്സ്റ്റെൻഷൻ () പ്രവർത്തനം ഉപയോഗിച്ച് പുതിയ അന്തർനിർമ്മിത പ്രവർത്തനങ്ങൾ ഡൈനമിക്കായി ചേർക്കുന്നു.

AWK പുസ്തകം () ഫംഗ്ഷൻ () ഫങ്ഷൻ റിട്ടേൺ മൂല്യം നിർവചിക്കുന്നില്ല. Gawk 's close () ഔട്ട്പുട്ട് ഫയൽ അല്ലെങ്കിൽ പൈപ്പ് അടയ്ക്കുമ്പോൾ fclose (3), അല്ലെങ്കിൽ pclose (3) ൽ നിന്ന് മൂല്യം നൽകുന്നു. ഒരു ഇൻപുട്ട് പൈപ്പ് അടയ്ക്കുമ്പോൾ പ്രക്രിയയുടെ എക്സിറ്റ് നില മടക്കിനൽകുന്നു. പേരുള്ള ഫയൽ, പൈപ്പ് അല്ലെങ്കിൽ സഹ-പ്രോസസ്സ് ഒരു റീഡയറക്ഷനിൽ തുറന്നിട്ടില്ലെങ്കിൽ, മൂല്യം -1 ആണ്.

--traditional ഉപാധി ഉപയോഗിച്ചു് gawk ഉപയോഗിയ്ക്കുമ്പോൾ , f -r ഐച്ഛികത്തിലേക്കുള്ള fs ആർഗ്യുമെൻറ് `` t '' ആണെങ്കിൽ, FS ടാബ് ക്യാരക്ടറിലേക്കു് സജ്ജമാക്കിയിരിയ്ക്കുന്നു. Gawk -F \ t ടൈപ്പ് ചെയ്യുക എന്നത് ശ്രദ്ധിക്കുക. `` T, '' എന്നിവ ഉദ്ധരിക്കാനാണ് ഷെല്ലിനെ പ്രേരിപ്പിക്കുന്നത്, മാത്രമല്ല `F \" ഓപ്ഷനിലേക്ക് കടന്നുചെല്ലുന്നു. ഇത് തികച്ചും വിചിത്രമായ സവിശേഷ കേസാണ് എന്നതിനാൽ ഇത് സ്വതവേയുള്ള സ്വഭാവമല്ല. --posix വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ ഈ സ്വഭാവം ഉണ്ടാകുന്നതല്ല. ഫീൽഡ് സെപ്പറേറ്റായി ഒരു ടാബ് പ്രതീകമായി വാസ്തവത്തിൽ കിട്ടാൻ, സിംഗിൾ ഉദ്ധരണികൾ ഉപയോഗിക്കുന്നത് നല്ലതാണ് : gawk -F '\ t' ....

സൌജന്യമായി , lpr , execl , fdisk , swap , autops , talk , motd , free , lp , lp , complete , execv , getfacl , ioctl , uniq , rmmod , pvcreate , rsh , unix2dos , at , who , iwconfig , ifconfig , vgdisplay , തുറന്ന , lsmod , ntohs , mailq , കൊല്ലുക , wtmp