የሊኑክስ ትዕዛዝ - gawk ይማሩ

ስም

ግላክ - ንድፍ ቅኝት እና ቋንቋ አፈፃፀም

ማጠቃለያ

gawk [POSIX ወይም GNU ቅጥ አማራጮች] -f program-file [ - ] ፋይል ...
gawk [POSIX ወይም GNU ቅጥ አማራጮች] [ - ] ፕሮግራም-ፅሁፍ ፋይል ...

pgawk [የ POSIX ወይም የጂኤንዩ ቅጥ አማራጮች] -f ፋይል-ፋይል [ - ] ፋይል ...
pgawk [POSIX ወይም GNU ቅጥ አማራጮች] [ - ] ፕሮግራም-ፅሁፍ ፋይል ...

መግለጫ

Gawk የ AWK ፕሮግራም ቋንቋ የጂኤንዩ ፕሮጀክት ትግበራ ነው. በ POSIX 1003.2 የትዕዛዝ ቋንቋ እና የዩቲሊስ ስታንዳርድስ ውስጥ ቋንቋ ከተሰጠው ፍቺ ጋር ይጣጣማል. ይህ እትም በ AWK ፕሮግራሚንግ ቋንቋ , በአቶ, በከኔጋን እና በዊንበርገር በሚቀርቡት መግለጫዎች በ UNIX awk በ SystemV Release 4 ስሪት ውስጥ በተሰጠው መግለጫ ላይ የተመሠረተ ነው. በተጨማሪም ጋቭ ተጨማሪ የቅርብ ጊዜ የከሎራቶሪ ላቦራቶሪስ ኤኬ ቅጥያዎች እና በርካታ የጂኤንዩ-የተወሰነ ልቅፎችን ያቀርባል.

ፐግግች የዎልኪንግ የመግለጫ ስሪት ነው. ፕሮግራሙ በጣም ዘግይተው ካልሆነ በስተቀር ለማገዝ በሁሉም መንገድ አንድ ዓይነት ነው, እና ሲጠናቀቅ በ awkprof.out ፋይል ውስጥ በራስ-ሰር የፍርድ ታሪክ ያዘጋጃል. የ --- profile option ከዚህ በታች ይመልከቱ.

ትዕዛዙ መስመር እራሱን ለማቆየት አማራጮችን ይሰጣል, የ AWK ፕሮግራም ጽሑፍ (በ -f ወይም - ፋይሉ አማራጮች በኩል ካልተሰጠ ), እና በ ARGC እና ARGV ቅድመ- ውስን የ AWK ተለዋዋጮች ውስጥ እንዲገኙ .

የአማራጭ ቅርጸት

የ Gawk አማራጮችም በተለምዶ POSIX አንድ ደብዳቤ አማራጮች, ወይም የጂኤንዩ የረጅም አማራጮች ሊሆን ይችላል. POSIX አማራጮች በነጠላ `- '' ይጀምራሉ, ረጅም አማራጮች በ` `- '' ይጀምራሉ. ለ GNU-የተወሰኑ ባህሪያት እና ለ POSIX-የተገደቡ ባህሪያት ለረጅም ጊዜ አማራጮች ይቀርባሉ.

የ POSIX መስፈርትን ተከትሎ, ለ- W አማራጭ በ < ግፋ> አማራጮች በኩል-gagk -specific options. ብዙ- አማራጮች ሊቀርቡ ይችላሉ-እያንዳንዱ አማራጭ ከዚህ በታች እንደተመለከተው. ለረዥም አማራጮች የቀረቡ ክርክሮች ከ a = ምልክት ጋር, እና ምንም የበይነመረብ ቦታዎች ከሌላቸው ወይም በሚቀጥለው የትዕዛዝ መስመር ነጋሪ እሴት ውስጥ ሊቀርቡ ይችላሉ. አህጉሩ ዝም ብሎ እስካለ ድረስ ረጅም አማራጮች አሕፅአዊ ሊሆን ይችላል.

አማራጮች

ጎልፍ በቋንቋ የተዘረዘሩትን አማራጮች ይቀበላል.

- ኤፍ. ፍ

--field-separator fs ለግቤት መስክ ሰርቲፊኬት (የ FS ቅድመ ውስን ተለዋዋጭ እሴት) ን ይጠቀሙ.

-v var = val

--የድርል = ዋጋውን የፕሮግራሙ ከመተግበሩ በፊት የእሴት ዋጋውን በ variable var ላይ መድብ. እንደነዚህ ያሉ ተለዋዋጭ እሴቶች ለ AWK ፕሮግራም የቡድን ማዘጋጃ ክፍል ይገኛሉ.

-f program-file

--file program-file ከመጀመሪያው የትዕዛዝ ነጋሪ እሴት ይልቅ የ AWK ፕሮግራም ምንጭ ከፋይል የፋይል ፕሮግራም-ፋይል ያንብቡ. በርካታ -f (ወይም - file ) አማራጮች ጥቅም ላይ ሊውሉ ይችላሉ.

-mf NNN

-mr NNN ወደ ልዩ እሴት NNN የተለያዩ የማህደረ ትውስታዎችን አስቀምጥ. የኢ ት ነጥብ ጠቋሚው ከፍተኛውን መስመሮች ያዘጋጃል, እና ራዲያው ከፍተኛውን የመዝገብ መጠን ያዘጋጃል. እነዚህ ሁለቱ ባንዲራዎች እና -m አማራጭ ከብል ዩኒኮር ኦክ . ጀዋክ ምንም ዓይነት ቅድመ-ገደብ ስላልነበረው በአዲሱ ችላ ይባላሉ.

-አባታችን

-ዊትን በተለምዶ

- ውድድር

- ከሙዚቃ ሁነታ አሂድ. በተኳሃኝነት ሁነታ, ጋውከ ከዩኒክስ አስክ ጋር ተመሳሳይ ባህሪ ያኖራቸዋል ; ከ GNU-የተወሰኑ ቅጥያዎች የሉም. አስማሚዎች በዚህ አማራጭ ሌሎች ቅርጾች ላይ የተመረጡ ናቸው. ለተጨማሪ መረጃ GNU EXTENSIONS ን , ከታች ይመልከቱ.

-W copyleft

-W የቅጂ መብት

- ኮፒሌት

--የቅጂ መብት የ GNU የቅጂ መብት መረጃን አጭር ስሪት በመደበኛ ውጽዓት ያትሙ እና በተሳካ ሁኔታ ወጥተው ያዘጋጁ .

-ወደም dump-variables [ = ፋይል ]

--dump-variables [ = ፋይል ] የተዘረዘሩ አለም አቀፍ ተለዋዋጮች ዝርዝርን, የፋይል አይነቶችን እና የመጨረሻ ፋይሎችን ያትሙ. ምንም ፋይል ካልቀረበ, gawk በአሁኑ ማውጫ ውስጥ awkvars.out የሚባል ፋይል ይጠቀማል.

የሁሉንም ዓለም አቀፍ ተለዋዋጮች ዝርዝር በፕሮግራሞችዎ ውስጥ የትርጉም ስህተቶችን ለመፈለግ ጥሩ ዘዴ ነው. በተጨማሪም በርካታ ተግባራት ያሉት ትልቅ ፕሮግራም ካለዎት እንዲሁም ይህን የሚያደርጉት በአካባቢያቸው ያሰቡትን በአለምአቀፍ ልዩ ልዩ ተለዋዋጭ ለውጦችን በማይታወቅ ሁኔታ መጠቀማቸውን ማረጋገጥ ነው. (ይህ እንደ i , j , ወዘተ የመሳሰሉትን ቀላል ተለዋዋጭ ስሞችን ለመስራት በጣም ቀላል ስህተት ነው.)

-እርዳታ

-W አጠቃቀም

--ፍፍል

--usage በመደበኛ ውጽዓት ላይ ያሉትን አማራጮች በአንፃራዊነት አጭር ማጠቃለያ ያትሙ. ( በጂኤንዩ ኬንደር ደረጃዎች መሠረት, እነዚህ አማራጮች ፈጣን እና የተሳካ መውጫ መውጣት ይፈጥራሉ.)

[ መቁሰል ]

--lint [ = fatal ] ስለ ሌሎች አተገባበር ስራዎች አጠራጣሪ ወይም የማይታለፉ ግንባታዎችን በተመለከተ ማስጠንቀቂያዎችን ያቅርቡ. በአስቸጋሪ አማራጭ የሽምግልና ክርክር, የፀጉር ማስጠንቀቂያዎች ለሞት የሚዳርጉ ናቸው. ይህ በጣም ኃይለኛ ሊሆን ይችላል, ነገር ግን ጥቅም ላይ የዋለው ንጹህ የ AWK ፕሮግራሞች እንዲስፋፉ ያበረታታል.

-የጎረምሳ ልጅ

- -lint-old ለዋናው የዩኒክስ አስክ ቨርዥን የማይንቀሳቀሱ ገንቢዎች ማስጠንቀቂያዎችን ያቅርቡ.

-ኤንጄ-ፖ

--gen-po የ AWK ፕሮግራምን ይቃኙ እና ይተዋሉ , እና በፕሮግራሙ ውስጥ ለሁሉም አካባቢያዊ ህብረቁምፊዎች ግቤቶች የ GNU .po ቅርጸት ፋይልን በመደበኛ ውጽዓት ያመነጩ. ፕሮግራሙ በራሱ አልተፈጸመም. የ .po ፋይሎችን በተመለከተ ተጨማሪ መረጃ ለማግኘት GNU ግኝት ስርጭት ይመልከቱ.

-አልፍ-ያልሆነ አስር-ውሂብ

- ያልሆነ-አስር-ዲሞል-ውሂብ በግቤት ውሂብ ውስጥ የ octal እና ሄክሳዴሲማል እሴቶችን ያውቃል. ይህን አማራጭ በጥንቃቄ ይጠቀሙ!

-ወዊክ

- pix ይህ የተኳሃኝነት ሁነታን ( compile mode) ያበራል, ከሚከተሉት ተጨማሪ ገደቦች ጋር:

*

\\ x escape sequence ትዕዛዞች ዕውቅና አይሰጡም.

*

FS ወደ አንድ ቦታ ሲቀናጅ የክልል እና ትሩ እንደ የመስክ መለያዎች ብቻ ነው, አዲስ መስመር አያደርግም.

*

መስመሮችን በኋላ መቀጠል አይችሉም ? እና :.

*

የቁልፍ ቃል ተግባሩ የጋራ መዝገበ ቃላቱ አልታወቀም.

*

አስኪዎች ** እና ** =^ እና ^ = ምትክ ሆነው መጠቀም አይችሉም.

*

fflush () ተግባር አይገኝም.

-W መገለጫ [ = prof_file ]

--profile [ = prof_file ] የመገለጫ ውሂብ ወደ ፕሮፋይል ላክ. ነባሪው awkprof.out ነው . ከጎልፍ ጋር ሲሄድ መገለጫው በጣም ጥሩ "" የታተመ የፕሮግራሙ ስሪት ነው. ከፒግጎክ ጋር ሲሄድ , መግለጫው በግራ ኅዳግ ውስጥ ያለውን እያንዳንዱን መግለጫ እና በያንዳንዱ ፕሮግራም በተገለፀው ተግባራት ውስጥ የስልክ ቁጥሮች ቆጠራ ያካሂዳል.

-ኤው ድጋሚ-ጊዜ

--re-interval በቀጣይ አገላለጽ ውስጥ ካለው የጊዜ ክፍተት (የቋንቋ ቃላትን ይመልከቱ) ይመልከቱ. የጊዜ ክፍተቶች በአብዛኛው በ AWK ቋንቋ አልተሰጡም. እርስ በርስ እንዲደጋገፉ ለማድረግ, የ POSIX መደበኛ እነሱን አክሏቸዋል . ይሁን እንጂ የእነሱ አጠቃቀም አሮጌውን የ AWK ፕሮግራሞች መስበር ሊቀር ይችላል, ስለዚህ አጫዋቹ በዚህ አማራጭ ሲጠየቁ , ወይም - - - ፎርች ከተገለጸ ብቻ ነው.

-ዋ ዋት ምንጭ -ጽሑፍ

- የፕሮግራም-ጽሑፍ ጽሑፍ እንደ የ AWK ፕሮግራም ምንጭ ኮድ ይጠቀሙ. ይህ አማራጭ በትእዛዝ መስመር ላይ የገባው የመግቢያ ኮድ ( በ- f እና - ፋይሉ አማራጮች በኩል ጥቅም ላይ የዋለው) ለቤተ-መጻህፍት ተግባራት በቀላሉ መተንተን ያስችላል . ፕሮግራሙ በዋነኝነት ለትላልቅ እስከ መካከለኛ ትላልቅ የ AWK ፕሮግራሞች በሼል እስክሪፕቶች ውስጥ ጥቅም ላይ የዋለ ነው.

-W ስሪት

- ለተገልጋዩ ግልባጭ የዚህን ግልባጭ ቅጂ በመደበኛ ውጽዓት ላይ ያትማል . ይህ በአጠቃላይ የዊር ፍርድ ፋውንዴሽን ማሰራጨትን ያገናዘበ የአሁኑ የዊርሆም ቅጂ ቅጂዎ ወቅታዊ ስለመሆኑ ለማወቅ ለማወቅ ይህ በጣም ጠቃሚ ነው. ይህ ሳንካን ሪፖርት በማድረግ ጠቃሚ ነው. ( በጂኤንዩ ኬንደር ደረጃዎች መሠረት, እነዚህ አማራጮች ፈጣን እና የተሳካ መውጫ መውጣት ይፈጥራሉ.)

- የአማራጭ መጨረሻን ያመለክታል. ይህ ለ `` - '' ለመጀመር ለ AWK እራሱ ተጨማሪ ነጋሪ እሴቶችን ለመፍቀድ ጠቃሚ ነው. ይህ በአብዛኛዎቹ የ POSIX ፕሮግራሞች ላይ ጥቅም ላይ የዋለው የክርክር ስምምነትን ለመተንተን ነው.

በተኳሃኝነት ሁነታ, ሌሎች አማራጮች ሁሉ ልክ እንዳልሆኑ ተጠቁረዋል, ግን በሌላ መልኩ ችላ ይባላሉ. በተለምዶ ቀዶ ጥገና, የፕሮግራሙ ጽሑፍ እስከሚቀርብ ድረስ, የማይታወቁ አማራጮች ወደ ሂደቱ ውስጥ የ ARGV ድርድሮች ወደ AWK ይልካሉ . ይህ በተለይ የ «#!» «Executable አስተርጓሚ ዘዴን በመጠቀም የ AWK ፕሮግራሞችን ለማሄድ ጠቃሚ ነው.

የ AWK ፕሮግራም አፈፃፀም

አንድ የ AWK ፕሮግራም ተከታታይ ንድፍ-እርምጃ መግለጫዎች እና አማራጭ አማራጭ መግለጫዎችን ያካትታል.

ንድፍ { action sentences }

የተግባር ስም ( የግብአት ዝርዝር ) { statements }

ጉዋክ በመጀመሪያ ከተገለፀው የፕሮግራም ምንጭ ከፕሮግራም-ፋይሉ (ዶች) ን ከተነበበ , ከግቤት -ወደ- ምንጭ , ወይም ከመጀመሪያ አማራጭ ነጋሪ እሴት ላይ በትእዛዝ መስመር ላይ ከመጀመሪያው ይነበባል . የ -f እና - ሶፍትዌሮች አማራጮች በትእዛዝ መስመር ላይ ብዙ ጊዜ ሊጠቀሙ ይችላሉ. ጌው ሁሉም የፕሮግራም-ፋይሎችን እና የትዕዛዝ መስመር ምንጭ ጽሑፎችን አንድ ላይ የተጣመሩ ይመስል እንደ ሆነ የፕሮግራሙን ጽሁፎች ያንብባል. ይህ የ AWK ተግባራትን ቤተመፃህፍት ለመገንባት ጠቃሚ ነው, በእያንዲንደ የ AWK ፕሮግራም ውስጥ እነሱን ማካተት ሳያስፈልግ ነው. በተጨማሪ የቤተ-ፍርግም ተግባራትን በትእዛዝ መስመር ፕሮግራሞች መቀላቀል ይችላል.

የአከባቢ ተለዋዋጭ AWKPATH በ-f አማራ ከተሰየመ ምንጭ ፈልግ ፋይሎችን ሲፈልጉ የሚጠቀሙበትን የፍለጋ መንገድ ይገልጻል. ይህ ተለዋዋጭ ከሌለ, ነባሪው ዱካ ".: / Usr / local / share / awk" ነው . ( ለእውቁ- f አማራጮች የተሰጠው የፋይል ስም ከ` / / 'ፊደል ጋር የተያያዘ ከሆነ, ምንም ዱካ ፍለጋ አልተጠናቀቀም.)

ጎውል የ AWK ፕሮግራሞችን በሚከተለው ቅደም ተከተል ያስፈጽማል . በመጀመሪያ በ-v በተሰጠው አማራጭ ሁሉም ተለዋዋጭ ስራዎች ይከናወናሉ. ቀጥሎ, ዎክ ፕሮግራሙን ወደ ውስጣዊ ቅጽ አፅድቋል . ከዚያም, ጎሆችBEGIN መከላከያ (ዶች) ውስጥ (በ, ጥ) ውስጥ ያለውን ኮድ ያስፈጽማል , ከዚያም በ ARGV ስብስብ ውስጥ የተጠራውን እያንዳንዱን ፋይል ማንበብ ይቀጥላል. በትዕዛዝ መስመሩ ላይ የተሰየሙ ፋይሎች ከሌሉ ጋዋው መደበኛውን ግብዓት ያነባል.

በትዕዛዝ መስመሩ ላይ የፋይል ስም ያለው ፎርሙላ var = val እንደ ተለዋዋጭ ስራ ተደርጎ ይቆጠራል. ተለዋዋጭ var መለኪያው ዋጋ ይሰጠዋል . (ይህ የሚሆነው ከማንኛውም የ BEGIN ማጠራቀሚያ (ዎች) ከተካሄደ በኋላ ነው.) የትእዛዝ መስመር ተለዋዋጭ ልኬቶችን ለእውነተኛ ተለዋዋጭ ሃሳቦችን ለመመደብ በጣም ጠቃሚ ነው. AWK እንዴት ግብአት እንዴት መስኮችን እና መዛግብትን ለመቆጣጠር እንደሚጠቀምበት ይቆጣጠራል. በአንድ ነጠላ የውሂብ ፋይል ላይ በርካታ መተላለፊያዎች ካስፈለጉም ሁኔታውን ለመቆጣጠር ጠቃሚ ነው.

ARGV አንድ የተወሰነ እሴት ባዶ ከሆነ ( «» ) ከሆነ, መጫዎቱ በላዩ ላይ ይረሳል .

በግብአት ውስጥ ላለው ለእያንዳንዱ መዝገብ, የአጎዋ ክውነቶች በ AWK ፕሮግራሙ ውስጥ ካለው ማናቸውንም ቅደም ተከተል ጋር ለማጣራት . መዛግብቱ የሚመሳሰሉበት እያንዳንዱ ቅፅ ተጓዳኝ እርምጃ ተጥሏል. ቅጦችን በፕሮግራሙ ውስጥ በሚገኙ ቅደም ተከተል ተመርጠዋል.

በመጨረሻ, ሁሉም ግብአቶች ከተጠናቀቁ በኋላ, አባባልEND (ዎች) እሮድ (ዎች) ውስጥ (ካለ ካለ) ኮዱን ይፈፅማል.

ተለዋዋጮች, መዝገቦች እና መስኮች

የ AWK ተለዋዋጭ ነገሮች ናቸው. እነዚህ ነገሮች ለመጀመሪያ ጊዜ ሲጠቀሙባቸው ሲፈጠሩ ነው. የእነሱ እሴቶቹ ተንሳፋፊ ቁጥሮች ወይም ሕብረቁምፊዎች ናቸው, ወይም ሁለቱም, እንዴት እንደተጠቀሙበት ነው. AWK በተጨማሪ አንድ ዳኛ ድርድር አለው. በርካታ ነጠላ ዲዛርዎች ሊመስሉ ይችላሉ. በርከት ያሉ ቅድመ-ተያያዥ ተለዋዋጮች እንደ ፕሮግራ መርሃግብር ተዘጋጅተዋል. እነዚህ እንደ አስፈላጊነቱ ይብራራሉ እና ከታች ተጠቃለዋል.

መዛግብት

በመደበኛነት, መዝገቦች በአዲስ መስመር ቁምፊዎች ይለያያሉ. መዝገቦች እንዴት እንደሚለያዩ እንዲሁም አብሮገነብ በተለዋዋጭ ተለዋዋጭ ( RS) ላይ እሴቶችን በመመደብ መቆጣጠር ይችላሉ. ሪኤስ ምንም ነጠላ ቁምፊ ከሆነ, ያ ገጸ-ባህሪው መዝገቦችን ይለያል. አለበለዚያ RS መደበኛ መግለጫ ነው. ይህን መደበኛ አገላለጽ በሚዛመድ ግቤት ውስጥ ጽሑፍን ይይዛል. ነገር ግን, በተኳሃኝነት ሁነታ, የእንግሊዝኛው ሕብረቁምፊ የመጀመሪያ ቁምፊ ብቻ መዝገቦችን ለመለየት ጥቅም ላይ ይውላል. RS ወደ null ሕብረቁምፊ ከተቀናበረ መዝገቦች በባዶ መስመሮች ይሰየማሉ. RS የሚለው ወደ null string ሲዋቀር የአዲሱ መስመር ቁምፊ ሁልጊዜ ከ FS እሴት በላይ ሊኖረው የሚችል እንደ የመስክ ተቆጣጣሪ ሆኖ ያገለግላል.

መስኮች

እያንዳንዱ የግብዓት መዝገብ በሚነበብበት ጊዜ, gawk እንደ የመስክ መለያ መስሪያው ዋጋን በመጠቀም የ FS ትንበያ ዋጋን ወደ መስኮችን ይከፍላል. FS ነጠላ ቁምፊ ከሆነ, መስኮቹ በዚያ ቁምፊ ይለያያሉ. FS null string ከሆነ, እያንዳንዱ ነጠላ ቁምፊ የተለየ መስክ ይሆናል. አለበለዚያ, ኤፍ ኤስ ሙሉ የዘወትር መግለጫ ይሆናል ተብሎ ይጠበቃል. በአንድ ልዩ ጉዳይ FS ነጠላ ቦታ ሲሆን, መስኮቹ በቦታዎች እና / ወይም በትራኮች እና / ወይም አዲስ መስመሮች ይለያያሉ. (ነገር ግን የፎክስን ማብራሪያ ከዚህ በታች ይመልከቱ). ማሳሰቢያ:IGNORECASE እሴት (ከዚህ በታች ይመልከቱ) የኤፍኤኤስ ማህደረ ትውስታ መደበኛ ገለጻ ሲሆን እንዴት ሪፖርቶች እንደፋይነት ሲለያዩ እንዴት እንደሚለያይ ይመለከታል .

FIELDWIDTHS ተለዋዋጭ ወደ ተነፉ የቁጥሮች ዝርዝር ከተቀመጠ እያንዳንዱ መስክ ቋሚ ስፋት ሊኖረው ይችላል, እና ጋቭ በተገለፁት ስፋቶች በመጠቀም ስርዓቱን ይከፍላል. የ FS እሴት ችላ ይባላል. አዲስ ለ FS አዲስ እሴት መወሰንFIELDWIDTHS አጠቃቀምን ይሽራል እና ነባሪ ባህሪን ያድሳል.

በግብዓት መዛግብት ውስጥ እያንዳንዱ መስክ በቦታው, $ 1 , $ 2 እና የመሳሰሉት ማጣቀሻዎች ሊጣሩ ይችላሉ. $ 0 ሙሉ መዝገብ ነው. መስኮች በቋሚዎች ማጣቀሻ አያስፈልጋቸውም:

n = 5
አትም $ n

በግብዓት መዝገብ ውስጥ አምስተኛው መስክ ያትማል.

ተለዋዋጭ NF በግቤት ግብጽ ውስጥ ወደ ጠቅላላው የመስኮች ቁጥር ተዘጋጅቷል.

ለነባር ያልሆኑ መስመሮች (ማለትም ከ $ NF በኋላ መስኮቶች) ማጣቀሻዎች null-string የተሰሩ ናቸው. ነገር ግን የማይኖርበት መስሪያ ቦታ መመደብ (ለምሳሌ $ (NF + 2) = 5 ) የ NF እሴት ይጨምረዋል, የማይሰሩ ነጠላ ሕብረቁምፊዎችን እንደ ዋጋ, እና የ $ 0 ዋጋ ዳግም እንዲመዘገብ ያደርጋል, ከ መስኮቹ በ OFS እሴት ይለያዩ ነበር. ለአውሮፓ ቁጥሮች የተሰጡ መስኮች ማጣቀሻዎች ለሞት የሚዳርጉ ናቸው. NF በማውረድ የአዲሱ ዋጋ አልፏል, እና የ $ 0 ዋጋ እንደገና እንዲሰላሰል, በመስኮቹ እሴት በ IFS እሴት በመለየት.

ወደ ነባር መስክ እሴት መዋል $ 0 እንዲጣራ ሲደረግ ሙሉውን መዝገብ እንደገና እንዲገነባ ያደርገዋል. በተመሳሳይ መልኩ, ወደ $ 0 እሴት መለየቱ መዝገቡ እንዲዘገይ ያደርጋል, ለመስኖቹ አዲስ እሴቶችን ይፈጥራል.

አብሮ የተሰሩ ልዩነቶች

የጉልኪ ውስጣዊ ተለዋዋጮች:

ARGC

የትዕዛዝ መስመር ነጋሪ እሴት ቁጥር ( ለጎል አማራጮች, ወይም የፕሮግራም ምንጭ) አያካትትም .

ARGIND

የአሁኑ ፋይል በ ARGV ውስጥ ያለው መረጃ ጠቋሚ.

ARGV

የትዕዛዝ መስመር ነጋሪ እሴቶች አደራደር. ስብስቡ ከ 0 ወደ ARGC - 1 ይ ጠመቀ. በአዳጊነት የ ARGV ይዘትን መቀየር ለውሂብ ጥቅም ላይ የዋሉ ፋይሎችን መቆጣጠር ይችላል.

BINMODE

በ POSIX ባልሆኑ ስርዓቶች, የሁሉም ፋይል I / O ፋይል `` ሁለትዮሽ '' ሁነቶችን ይጠቀማል. የ 1, 2 ወይም 3 የቁጥር እሴቶች የግብዓት ፋይሎችን, የውጤት ፋይሎችን, ወይም ሁሉንም ፋይሎች በየአደባባዮች በ I ንኤል O / ኤ ይጠቀማሉ. የ "r" , ወይም "w" ቁምፊ እሴቶች የግብዓት ፋይሎችን ወይም የውጤት ፋይሎችን, ለየ ሁለትዮሽ I / O ን መጠቀም አለባቸው. የ "rw" ወይም "wr " የማጣቀሻ እሴቶች ሁሉም ፋይሎች ሁለትዮሽ I / O ን መጠቀም አለባቸው. ሌላ ማንኛውም ሕብረቁምፊ ዋጋ እንደ "rw" ይታያል , ነገር ግን የማስጠንቀቂያ መልዕክት ያመነጫል.

CONVFMT

የቁጥሮች ቅየራ ቅርጸት, "% .6g" , በነባሪነት.

ENVIRON

የአሁኑን አካባቢ እሴቶች የያዘ ድርድር. አረንጓዴ በአከባቢው ተለዋዋጭ ሰንጠረዥ ይለወጣል , እያንዳንዱ ኤሌመንት ያንን እሴት ነው (ለምሳሌ, ENVIRON ["HOME"] ምናልባት / home / arnold ). ይህንን አደራጅ መቀየር በ " ሪአኪንግ" ወይም " ሲስተም" ( function ) ( ሃውስ) በመጠቀም የሚፈጠረውን ፕሮግራም አይታዩም.

ERRNO

የስርዓት ስህተት ከተደረገgetline , ለ getline መስመር ሲነበቡ ወይም በተዘጋ () ላይ ከሆነ ERRNO ስህተቱን የሚያብራራ ሕብረቁምፊ ይይዛል. ዋጋው በእንግሊዝኛ ባልሆኑ አካባቢዎች ላይ ሊተረጎም ይችላል.

FIELDWIDTHS

በነጭ ክፍተት የተለዩ የመዝጊያ ቦታዎች ዝርዝር. ከተዘጋጀ በኋላ, የአስኤምኤስ ተለዋዋጭ እንደ የመስክ መጋጠሚያ ከመጠቀም ይልቅ ግዋናው የቋሚውን ስፋት መስኮች ይለያል.

የመዝገብ ስም

የአሁኑ የግቤት ፋይል ስም. ምንም ፋይሎች በትእዛዝ መስመር ላይ ካልተገለጹFILENAME እሴት «-» «ነው» ነው. ሆኖም ግን, FILENAMEBEGIN መቆጣጠሪያ ውስጥ ያልተገለጸ (በ getline መስመር ካልተወሰነ በስተቀር).

FNR

በአሁኑ የግቤት ፋይል ውስጥ የግብአት ቁጥር.

FS

የግብአት መስክ ጠራሻ, በነባሪነት ቦታ. መስኮቶችን ከላይ.

IGNORECASE

የሁሉም መደበኛ አገላለጾች እና ሕብረ ቀዶ ጥገናዎች የሲግናል ስፔክትነን ይቆጣጠራል. IGNORECASE ከዜሮዎች ጋር ሲነጻጸር, ዜሮ () , gsub () , ኢንዴክስ () እና ኤም.ኤስ (ኤፍኤስኤስ) የሚለቀቁ የመዝገብ ምሳሌ , , መደበኛ () , የተከፈለ () እና ንዑስ () አብሮ የተሰሩ ተግባራት ሁሉ መደበኛ የቃኝ ክወናዎችን በሚያደርጉበት ጊዜ ሁሉም ችላ ይያላሉ. ማሳሰቢያ: የድርድር ቅደም ተከተል ማጐድበት ላይም ሆነ የ asort () ተግባር አይሆንም.

ስለሆነም IGNORECASE ከዜሮ ጋር እኩል ካልሆነ, / aB / በሁሉም የ "ab" , "aB" , "Ab" እና "AB" ሕብረቁምፊዎች ይዛመዳል. እንደ ሁሉም የኤውኪዊ ተለዋዋጮች ሁሉ የ IGNORECASE የመጀመሪያ እሴት ዜሮ ነው, ስለዚህ ሁሉም መደበኛ የሒሳብ መግለጫ እና ሕብረ ቀዶ ጥገናዎች በመደበኛ ስሜት-ተኮር ናቸው. በዩኒክስ ስር ሙሉው ISO 8859-1 ላቲን-1 ቁምፊ ስብስብ ጉዳዩን ችላ በማለት ጥቅም ላይ ይውላል.

LINT

ከአንድ AWK ፕሮግራም ውስጥ ተለዋዋጭ መቆጣጠሪያ አማራጭ ተቆጣጣሪን ያቀርባል. እውነት ሲሆን, መኮን የላቲን ማስጠንቀቂያዎችን ያትማል. ስህተት በሚሆንበት ወቅት. የሕብረቁምፊው ዋጋ "ገዳይ" እንዲሆን ሲሰጠው , የጧት ማስጠንቀቂያዎች ልክ እንደ --- ገዳይ ለሞት የሚዳርጉ አስከፊ ስህተቶች ናቸው. ሌላ ማንኛውም እውነተኛ እሴት አስጊ ምልክቶች ብቻ ያትማል.

NF

አሁን ባለው የግብአት መዝገብ ያሉ መስኮች ቁጥር.

NR

እስከአሁን ድረስ የታዩ የግብአት መረጃዎች.

OFMT

የቁጥሮች የውፅዓት ቅርጸት, "% .6g" , በነባሪ.

OFS

የውጤት መስክ መፍታት, በነባሪነት ቦታ.

ORS

የውጽአት ተከፋይ መለያ, በነባሪ አዲስ መስመር.

PROCINFO

የዚህ ድርድር አባሎች ስለ አሂድ የ AWK ፕሮግራም መረጃን ያቀርባል. በአንዳንድ ስርዓቶች ውስጥ ከ "ቡድን 1" እስከ " n " ውስጥ , አንዳንድ ሂደቶች የያዙት ተጨማሪ አባሎች ሊሆኑ ይችላሉ. ለእነዚህ ክፍሎችን ለመፈተሽ ከዋኙን ኦፐሬተሩ ጋር ይጠቀሙ. የሚከተሉት ክፍሎች እንደሚገኙ ዋስትና ይሰጣቸዋል:

PROCINFO ["egid"]

getegid (2) የስርዓት ጥሪ እሴት.

PROCINFO ["euid"]

geteuid (2) የስርዓት ጥሪ እሴት.

PROCINFO ["FS"]

"FS"FS መስክ መስኮቱ ከተተገበረ , ወይም በ FIELDWIDTHS መስክ መስክ ተፈፃሚ ከሆነ "FIELDWIDTHS" በስራ ላይ ውሏል.

PROCINFO ["gid"]

getgid (2) የስርዓት ጥሪ እሴት.

PROCINFO ["pgrpid"]

የአሁኑን ሂደትን የቡድን መታወቂያ.

PROCINFO ["ፒድ"]

የአሁኑ ሂደትን የሂደት መታወቂያ.

PROCINFO ["ppid"]

የአሁኑ ሂደትን የወላጅ ሂደት ID.

PROCINFO ["uid"]

getuid (2) የስርዓት ጥሪ ዋጋ.

RS

የግብዓት መዛይተ ተቆጣጣሪ, በነባሪ አዲስ መስመር.

RT

የመዝገብ ተቋራጭ. ጌው በሪኤስ የተዘረዘውን ገጸ-ባህሪ ወይም ቋሚ አገላለጽ ጋር የሚዛመደው የግብዓት ጽሑፍ ለ RT ይጽፋል .

RSTART

በትከሻ () በተዛመደ የመጀመሪያው ቁምፊ ጠቋሚ; 0 ካልሆነ. (ይህ የሚያሳየው የቁምፊዎች ኢንዴክስ በአንዱ ነው.)

RLENGTH

በትከሻ () በማዛመድ ላይ ያለው ሕብረቁምፊ ርዝመት; -1 ተዛማጅ ካልሆነ.

SUBSEP

በነባሪ አደረጃዊ ክፍሎች ውስጥ ብዙ እዝያዎችን ለመለየት ጥቅም ላይ የዋለ ቁምፊ, በነባሪ "\ 034" ውስጥ .

TEXTDOMAIN

የ AWK ፕሮግራም ጽሑፍ ጎራ; ለፕሮግራም ሕብረቁምፊዎች የተተረጎሙትን ትርጉሞች ለማግኘት ያገለግላል.

ሰንጠረዦች

ሰንጠረዦች በቀይ ማዕዘን ( [ እና ] መካከል ባለው አረፍተነገር ቀርበዋል. ይህ አገላለጽ መግለጫ ዝርዝር ( ኤክስፕር , ኤምፕ ...) ከሆነ ( ለምሳሌ , ኤክስፕሬም ...) የአምስት ቀስ በቀስ በእያንዳንዱ መግለጫ (እሴት) እሴቱ በ < SUBSEP> ተለዋዋጭ እሴት ይለያል. ይህ መገልገያ በስፋት የተሰሩ አደራደሮችን ማምለጥ ያገለግላል. ለምሳሌ:

i = "A"; j = "B"; k = "ሐ"
x [i, j, k] = "ሠላም, ዓለም \ n"

"ሠላም, ዓለም \ n" ወደ ሕብረቁምፊ "A \ 034B \ 034C""ኤ \ 034B \ 034C" መረጃ ጠቋሚ ወደ ኤሪያ አርዕክት አባል ይመድባል . በ AWK ውስጥ ያሉ ሁሉም አደራደሮች ተያያዥነት ያላቸው, ማለትም በስርዓት ዋጋዎች የተጠቆሙ ናቸው.

በ ውስጥ ያለው ልዩ ኦፐሬሽኑ አንድ ወይም ከዛ ያለ መግለጫ ውስጥ አንድ እሴት የተወሰነ እሴት ያለው ኢንዴክስ አለው ወይም አይሰጥም.

ቢል (በድርጅት ውስጥ ያለ ዋጋ) የህትመት ድርድር [ጥሩ]

ድርድሩ ብዙ ቁጥሮች ያለው ከሆነ በድርድር ውስጥ (i, j) ይጠቀሙ.

በመገንባት ላይ በ " ለ" መቋረጥ በአንድ የደርስብ ውቅረቶች ላይ ድጋሜ ሊሰጥ ይችላል.

የሰረዘውን መግለጫ በመጠቀም አንድ አባል ከድርድር ሊሰረዝ ይችላል. እንዲሁም የዓረፍተ ዓረፍተ ሐሳብ የአርእስት ስምን ያለ ንዑስ እሴት በመጥቀስ ብቻ የአንድ ድርድር ይዘትን ለመሰረዝ ጥቅም ላይ ሊውል ይችላል.

ተለዋዋጭ ትየባ እና ቅየራ

ተለዋዋጮች እና መስኮች (ተንሳፋፊ ነጥብ) ቁጥሮች, ወይም ሕብረቁምፊዎች, ወይም ሁለቱም ሊሆኑ ይችላሉ. የአንድ ተለዋዋጭ እሴት እንዴት እንደሚተረጎመው እንዴት እንደየአገባቡ ይለያያል. በቁጥር ገለጻ ውስጥ ጥቅም ላይ ከዋለ, እንደ ሕብረቁምፊ ከተጠቀመ እንደ ሕብረቁምያ ይያዛል.

ተለዋዋጭ እንደ ቁጥር እንዲቆጠር ለማስገደድ 0 ላይ ጨምር. እንደ ሕብረ ሕዋስ መታከም ያስገድደዋል, ባዶ ሕብረቁምፊውን ያዛምዱት.

አንድ ሕብረቁምፊ ወደ ቁጥር መቀየር ሲኖርበት , ለውጡ በ strtod (3) በመጠቀም ይከናወናል . የ CONVFMT እሴት እንደ sprintf (3) ቅርጸት እንደ የቅርጽ ሕብረቁምፊ በመጠቀም አንድ ቁጥር ወደ ሕብረ / ውስጠኛ ይቀየራል , እንደ ነጋሪ እሴት እንደ የቁጥር እሴት ያለው ቁጥር ነው. ሆኖም ግን, ሁሉም በ AWK ውስጥ ያሉ ቁጥሮች ተንሳፋፊ ነጥብ ቢሆንም, ጥገኛ እሴቶች ሁልጊዜ ኢንጂኖችን ይቀየራሉ. ስለሆነም

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

ተለዋዋጭ ባለ "12""12" ቁምፊ እና "12,00" አይደለም .

ጎቭ የሚከተሉትን ጥቀማዎች ያከናውናል: ሁለት ተለዋዋጭ ቁጥሮች ከሆኑ በቁጥር ጋር ይታያሉ. አንድ እሴት አሃዛዊ እና ሌላው «ቁጥራዊ ሕብረቁምፊ» የሆነ ሕብረቁምፊ እሴት ካለው, ከዚያም ጥረዛዎች እንዲሁ በቁጥር ይደረጋሉ. አለበለዚያ ቁጥሩ እሴቱ ወደ ሕብረቁምፊነት ይለወጣና ህብረቁምፊ ማወዳደር ይከናወናል. እርግጥ ነው, ሁለት ሕብረቁምፊዎች ከማኅፀን ጋር ተመሳስለዋል. የ POSIX መለኪያ የ «ቁጥሮችን ሕብረቁምፊ» ጽንሰ-ሐሳብ በየትኛውም ቦታ ላይ, የቁም ሕብረቁምፊዎች ጭምር እንደሚጠቀም ልብ ይበሉ. ነገር ግን, ይሄ በግልጽ ግልጽ አይደለም, እና ጋው ይህን አያደርግም. (እንደ ዕድል ሆኖ, ይህ በቀጣዩ ስሪት ላይ ተስተካክሏል.)

እንደ "57" ያሉ ሕብረ ቁምፊዎች ቋሚ ቁጥሮች አይደሉም , እነሱ የንድፍ ቋሚዎች ናቸው. «ቁጥራዊ ሕብረቁምፊ» የሚለው ሐሳብ መስኮች, የገቢ ማስገቢያ ግቤት, FILENAME , የ ARGV ክፍሎች, የ ENVIRON አባላት እና ቁጥራዊ ሕብረቁምፊዎች () በመጠቀም የተፈጠሩ የድርድር አባለ ነገሮች ብቻ ነው የሚመለከተው. መሠረታዊው ሐሳብ የተጠቃሚ ግብዓት ሲሆን የተጠቃሚ ቁጥጥሩ ቁጥራዊ ብቻ ነው የሚወሰነው.

ያልተቀየሩ ተለዋዋጮች የቁጥር እሴት 0 እና የህብረቁምፊ እሴት «» (ባዶ ወይም ባዶ, ሕብረቁምፊ) አላቸው.

ኦክታል እና ሄክዴዴሲማል የማይለወጡ

ከሶፍት ቨርዥን ስሪት 3.1 ጀምሮ በርስዎ AWK ፕሮግራም ምንጭ ኮድ ውስጥ C-ቅጥ ስምንትዮሽ እና ሄክሶዴሲማል ቋሚዎችን መጠቀም ይችላሉ. ለምሳሌ, octal እሴት 011 ከአስርዮሽ 9 ጋር እና የሂክዴሲሲማል እሴት 0x11 እኩል ከሆነ አስራ 17 ጋር እኩል ነው.

ሕብረቁምፊዎች የማይለወጡ

በ AWK ውስጥ ያሉት የንድፍ ቋሚዎች በዳዊ ጥቅሶች ( " ) " ውስጥ የተካተቱ የቁምፊዎች ቅደም ተከተል ነው. በ ውስጥ, የተወሰኑ የማምለጫ ቅደም ተከተሎች በ C ላይ እንደሚታወቁ ይቆጠራሉ.

\\

ቀጥተኛ የጀርባ ምልክት.

\ a

የ «ማንቂያ» ቁምፊ; በአብዛኛው የ ASCII BEL ቁምፊ.

\ ለ

Backspace.

\ f

ቅጽ-ምግብ.

\ n

አዲስ መስመር.

\ r

የመርከብ መመለሻ.

\ t

አግድም ትር.

\ v

አቀባዊ ትሩ.

\ x hex አሃዞች

\ X ን በመከተል በሂሳዳሲሲማል አኃዞች ሕብረቁምፊ የሚወከለው. ልክ እንደ ANSIC ሁሉ, ሁሉም የሚከተሉት ሄክሳዴሲማል አሃዞች በምርጫ ቅደም ተከተል ውስጥ ይቆጠራሉ. (ይህ ባህሪ ስለ የቋንቋ ዲዛይን ኮሚቴ የሆነ ነገር ሊነግረን ይገባል.) ለምሳሌ <\ x1B > ASCIIESC (escape) ቁምፊ ነው.

\ ddd

ባለ 1, 2 ወይም 3 ዲጂት ተከታታይ የስድሰት አሃዞች ነው. ለምሳሌ "\ 033" የ ASCII ESC (ማምለጫ) ቁምፊ ነው.

\ c

ቃል በቃል .

የማሳያው ቅደም ተከተል ቋሚ አገላለጾችን በመጠቀም (ለምሳሌ, [[ ትካ.

በተኳሃኝነት ሁነታ, በ ስምንትዮሽ እና ሄክሶዴሲማል የሚወከሉት ቁምፊዎች በመደበኛ የቋሚ ቋሚዎች ውስጥ ጥቅም ላይ ሲውሉ ቀጥተኛ ናቸው. ስለዚህም, / 52b / / / \ \ b / ጋር እኩል ይሆናል.

ቅጦች እና ድርጊቶች

AWK መስመር-ተኮር ቋንቋ ነው. ስርዓቱ መጀመሪያ ይመጣል, ከዚያም እርምጃው. የእርምጃ መግለጫዎች በ { እና } ተያይዘዋል . ምናልባት ስርዓቱ ምናልባት ጎድሎ ይሆናል ወይም ድርጊቱ ሊጎድል ይችላል, ግን በእርግጥ, ሁለቱንም አይደለም. ንድፉ ጠፍቶ ከሆነ, እያንዳንዱ እርምጃ ለያንዳንዱ የግቤት ምዝግብ ይፈፀማል. የጠፋው እርምጃ ከ ጋር እኩል ነው

{print}

አጠቃላይ ዘገባውን ያትታል.

አስተያየቶች በ`` # '' ቁምፊ ይጀምራሉ, እና እስከ መስመር መጨረሻ ድረስ ይቀጥሉ. ለየት ያለ ጽሁፎችን ለማጣቀስ የተጫኑ መስመሮችን መጠቀም ይቻላል. በተለምዶ አንድ መግለጫ በአዲሱ መስመር ሲያልቅ, ይሁን እንጂ, በ <`, '', { , ? , : , && , ወይም || . በድርጊት የሚጨመሩ መስመሮች ወይም መግለጫዎች በተጨማሪ መግለጫዎቻቸው ቀጥለው መስመር ላይ በቀጥታ ይቀጥላሉ. በሌላ ሁኔታዎች ደግሞ መስመርን በ መግፋት ይቻላል. በዚህ ጊዜ አዲሱ መስመር ሊተላለፍ ይችላል.

በርካታ ዓረፍተ ሐሳቦችን በአንድ መስመር ውስጥ በማስቀመጥ በአንድ ``; '' ጋር በመለያየት ይቻላል. ይህ በእውነተኛ-ድርጊት ሁለት ጥንድ (በተለመደው ጉዳይ) በድርጊት ውስጥ እና በድርጊት-እርምጃ ዓረፍተ-ነገሮች ውስጥ ያሉትን ሁለቱንም ይመለከታል.

ቅጦች

የ AWK ንድፍ ከሚከተሉት ውስጥ አንዱ ሊሆን ይችላል-

BEGIN END / መደበኛ አገላለፅ / የዘመድ የአጻጻፍ ስርዓተ ጥለት እና የስርዓተ ጥለት ቅጦች || ንድፍ ንድፍ ? ንድፍ : ስርዓተ - ጥለት ( ንድፍ ) ! ንድፍ ንድፍ 1 , ንድፍ 2

BEGIN እና END ሁለት ግብረ መልሶች ናቸው, እነሱም በግብአያው ላይ ያልፈፀሙ. የሁሉም BEGIN ቅጦች የድርጊት ክፍሎች የተዋሃዱ ናቸው ሁሉም ዓረፍተ-ነገሮች በአንድ ነጠላ እገዳ ላይ እንደተፃፉ. ማንኛውም ግብዓት ከመነበቱ በፊት ይፈጸማሉ. በተመሳሳይ ሁኔታ, ሁሉም END እገላታት ይዋሃዳሉ, እና ሁሉም ግብዓቱ ሲሟሟ (ወይም አንድ የውጪ ትዕዛዝ ሲተገበር) ይፈጸማሉ. BEGIN እና END ቅርፀቶች ከሌሎች የአቀማመጥ መግለጫዎች ጋር ሊጣመሩ አይችሉም. የ BEGIN እና END ቅርፀቶች አብረዋቸው የቦታ ክፍሎች ሊኖራቸው አይችሉም.

/ መደበኛ ገለጻ / ንድፎች, ተዛማጅ መግለጫው ከመደበኛ የሒሳብ ሓሳብ ጋር ለሚዛመድ እያንዳንዱ የግብዓት መዝገብ ይፈጸማል. መደበኛ አገላለጾች በኦሪፕ (1) ውስጥ ካሉት ጋር ተመሳሳይ ናቸው, ከታች ተጠቃለዋል.

አንጻራዊ የሆነ መግለጫ በዚህ ክፍል ውስጥ የተገለጹትን ኦፕሬተሮችን ሁሉ ሊጠቀም ይችላል. እነዚህ በአጠቃላይ የተወሰኑ መስኮች የተወሰኑ መደበኛ መግለጫዎችን ይጣጣሙ እንደሆነ ይፈትሻል.

&& , || , እና ! ኦፕሬተሮች ሎጂካዊ ሎጂካዊ ሎጂካዊ (ሎጂስቲክስ), አመክንዮአዊ (logic), እና ምክንያታዊ (logic) አይደለም. እንደ ብዙዎቹ ቋንቋዎች, ቅንብራችን የግምገማ ቅደም ተከተል ለመለወጥ ጥቅም ላይ ሊውል ይችላል.

; ?: ከዋነኛው ከ C ጋር ተመሳሳይ ሰርጥ ነው. የመጀመሪያ ንድፍ እውነት ከሆነ ለሙከራው የተቀመጠው ስርዓተ-ነጥብ ሁለተኛ ነው, አለበለዚያ ሶስተኛ ነው. ከሁለተኛው እና ከሦስተኛው ስርዓተ ጥለቶች ውስጥ አንድ ብቻ ይገመገማል.

የአረፍተ ነገር ንድፍ 1 የቅርጸት 2 ቅርጽ የክልል ንድፍ ይባላል . ከዓውዱ 1 ጋር ከሚዛመድ ግኝት ጀምሮ ሁሉንም የግብአት ሪፖርቶች ጋር ይዛመዳል, እና ሞዴል 2 ን ያካተተ መዝገብ እስኪከፈት ድረስ ይቀጥላል. ከሌላ ከማንኛውም አይነት ስርዓት መግለጫ ጋር አይጣጣምም.

መደበኛ መግለጫዎች

መደበኛ አገላለጾች በፔሪፕ ውስጥ የተገኘ ረቂቅ ነገር ናቸው. እነሱ እንደሚከተለው ቁምፊዎችን ያቀፉ ናቸው-

ከሜታካታር ጋር ያልተዛመደ .

\ c

ቀጥተኛውን ቁምፊ . c ይዛመዳል.

.

አዲስ መስመርን ጨምሮ ከማንኛውም ቁምፊ ጋር ያዛምዳል.

^

የሕብረቁምፊን መጀመሪያ ያዛምዳል.

$

ከአንድ ሕብረቁምፊ መጨረሻ ጋር ይዛመዳል.

[ abc ... ]

የቁምፊ ዝርዝር, ማንኛውንም ከቁምፊቶቹ ጋር ይዛመዳል.

[^ ለ ... ... ]

የአረፍት ቁምፊ ዝርዝር, ከ ABC በስተቀር ማንኛውም ቁምፊ ያዛምዳል .

r1 | r2

አማራጭ: ከ R1 ወይም ከ r2 ጋር ያዛምዳል .

r1r2

ጥምረቶች r1 እና ከዚያም r2 .

r +

አንድ ወይም ተጨማሪ rs ን ያዛምዳል.

r *

ከዜሮ ወይም ተጨማሪ rs ጋር ይዛመዳል.

r ?

ከዜሮ ወይም አንድ ራሽ ጋር ይዛመዳል.

( )

በቡድን ተካቷል: ተዛማጁ r .

r { n }

r { n ,}

r { n , m } በጠረጴች ውስጥ አንድ ወይም ሁለት ቁጥሮች የጊዜ ርዝመትን ያመለክታሉ . በማጠፊያ ውስጥ አንድ ቁጥር ካለ, የቀደመውን መደበኛ ገለጻ r ውድድር n ጊዜ ይደጋገማል. ሁለት ቁጥሮች በኮማ የተለያዩ ከሆኑ ወደ n ጊዜ ይደጋገማል. አንድ ቁጥር በኮማ ውስጥ ካለ, ከዚያም r ቢያንስ ተደጋግሞ ይደጋገማል.

የጊዜ ርዝመት አገላለፆች ሊገኙ የሚችሉት በመግለጫ መስመር መስመር ላይ - loix ወይም - re-interval ከተጠቀሱ ብቻ ነው.

\ y

በአንድ ቃል መጀመሪያ ወይም መጨረሻ ላይ ባዶ ሕብረቁምፊ ያዛምዳል.

\ ለ

በአንድ ቃል ውስጥ ካለው ባዶ ሕብረቁምፊ ጋር ያዛምዳል.

\ <

በአንድ ቃል መጀመሪያ ላይ ባዶ ሕብረቁምፊ ያዛምዳል.

\>

በአንድ ቃል መጨረሻ ላይ ካለው ባዶ ሕብረቁምፊ ጋር ያዛምዳል.

\ w

ከማንኛውም የቃላት-ቁምፊ ቁምፊ (ፊደል, አሃዝ, ወይም ሰረዘዘብጥ) ጋር ያዛምዳል.

\ ዋ

ከቃለ-ወሳኝ ያልሆነ ማንኛውም ቁምፊ ያዛምዳል.

\ `

በአንድ ቋት (ሕብረቁምፊ) መጀመሪያ ላይ ባዶ ሕብረቁምፊ ያዛምዳል.

\ '

በማስተካከል መጨረሻ ላይ ባዶ ሕብረቁምፊ ያዛምዳል.

በህብረቁምፊ ቋሚዎች ውስጥ የሚሰሩ የማምለጫ ቅደም ተከተሎች (ከታች ይመልከቱ) እንዲሁም በመደበኛ መግለጫዎች ውስጥም ትክክል ናቸው.

የቁምፊ ክፍሎች በ POSIX መደበኛ የተዋቀረው አዲስ ባህሪ ነው. አንድ የቋንቋ ክፍል አንድ የተወሰነ ባህሪ ያላቸውን የቋንቋ ዝርዝር ዝርዝር ለመግለጽ ልዩ ምልክት ነው, ነገር ግን ትክክለኞቹ ቁምፊዎች እራሳቸው ከአገር ወደ አገር እና / ወይም ከተርታር ስብስብ ወደ ተጫዋች ስብስብ ሊለዩ ይችላሉ. ለምሳሌ, የአጻጻፍ ቁምፊ ምን እንደሆነ በዩ.ኤስ እና በፈረንሳይ ይለያል.

አንድ የቁምፊ ክፍል በቁምፊ ዝርዝሮች ቅንፎች ውስጥ ባለው መደበኛ አገላለጽ ውስጥ ብቻ ነው የሚሰራው. የ "ቁምፊ" መደቦች [ "ክፍሉን የሚያመለክቱ ቁልፍ ቃላት", እና :] . በ POSIX ደረጃ የተቀመጠው የቋንቋ መደቦች እነኚህ ናቸው:

[: alnum:]

የፊደል ቁጥር ቁምፊዎች.

[: አልፋ:]

የአልታይም ቁምፊዎች.

[: ባዶ:]

የቦታ ወይም የትር ቁምፊዎች.

[: cntrl:]

ቁምፊዎችን ይቆጣጠሩ.

[: ዲጂት:]

ቁጥራዊ ቁምፊዎች.

[: ግራፍ:]

ሁለቱም የታተሙ እና የሚታዩ ገጸ ባህሪያት. (ክፍሉ ታትሞ ሊሆን ይችላል, ግን አይታይም, እና a ሁለቱም ሁለቱም ናቸው.)

[: ታች:]

ንዑስ ሆሄ ፊደላት ቁምፊዎች.

[: ማተም:]

ሊታተሙ የሚችሉ ገጸ-ባህሪያት (ቁምፊዎችን የማይቆጣጠሩ ቁምፊዎች).

[: ነጥብ:]

የስርዓተ ነጥብ ቁምፊዎች (ፊደላት, አሃዞች, ቁምፊዎች መቆጣጠር, ወይም የቦታ ቁምፊዎች).

[: space:]

የቦታ ቁምፊዎች (እንደ ቦታ, ትር እና ቅርጫት የመሳሰሉ ጥቂት ለመጥቀስ).

[: በላይ:]

ከፍተኛ-ሆሄ ፊደላት ቁምፊዎች.

[: xdigit:]

ባለአክፍዮክሲማል አሃዞች ናቸው.

ለምሳሌ, ከኤክሊንየም ቁምፊዎች ጋር ለማዛመድ, ከ / ከ POSIX መስፈርት በፊት, / [A-Za-z0-9] / / መጻፍ ይጠበቅብዎታል . የእርስዎ ቁምፊ ስብስብ በውስጣቸው ሌሎች ፊደላት (ሆሄያት) ቁምፊዎች ካሉ ተመሳሳይ አይሆንም, እና የእርስዎ ቁምፊ ከ ASCII በተለያየ መልክ ከተጣሰ ይሄ ከ ASCII ፊደልና የቁጥር ጋር አይጣጣምም. በ POSIX ቁምፊዎች ክፍሎች, / [[: alnum:]] / , / ይጻፉት , እና ይሄ በእርስዎ ቁምፊ ስብስብ ውስጥ ባሉ ፊደላት እና ቁጥራዊ ቁምፊዎች ይዛመዳል.

ሁለት ተጨማሪ ልዩ ቅደም ተከተል በቁምፊዎች ዝርዝር ውስጥ ሊታይ ይችላል. እነዚህ ከ A ንድ ገጸ-ባህሪያት በላይ የሚወጡ ነጠላ ተምሳሌቶች ( ከግላጅ-አባሎች ጋር ), እንዲሁም ለመሰብሰብ ወይም ለመደርደር ዓላማዎች የሆኑ ተመሳሳይ ቁምፊዎች ሊኖራቸው ይችላል. (ለምሳሌ, በፈረንሣይኛ, `` e '' እና 'ሲም-ኤም' ያለው ጭማሬ ተመሳሳይ ናቸው.)

ምልክቶችን ማያያዝ

የክትትል ምልክት በ [. እና. ለምሳሌ ch አንድ የተጣጣፊ አባል ከሆነ ከ [[.ch.]] ጋር ከመዛመዱ አባባል ጋር የሚዛመደው መደበኛ አገላለጽ ነው, [ch] ደግሞ c ወይም h ን የሚዛመደው መደበኛ አገላለጽ ነው.

የ Equivalence ክፍሎች

አንድ ተዛማጅነት ያለው ክፍል እኩያ የሆኑ የቁምፊዎች ዝርዝር በአካባቢ ላይ የተወሰነ ስም ነው. ስሙ በ [= እና =] ውስጥ ተዘግቷል. ለምሳሌ, ስም «e», «ኤ», «» እና «` e` ለመወከል ጥቅም ላይ ሊውል ይችላል. በዚህ አጋጣሚ [[= e =]]e , e ' ወይም e` ጋር ይዛመዳል .

እነዚህ ባህርያት እንግሊዝኛ ባልሆኑ ቦታዎች ላይ በጣም ጠቃሚ ናቸው. Gwhk ለመደበኛ ገለጻ ማነጣጠር የሚጠቀምባቸው የቤተ-መጻህፍት ተግባራት በአሁኑ ጊዜ የ POSIX ቁምፊ መደቦችን ብቻ ለይተው ማወቅ ይችላሉ. እነሱ ተሰብስበው ምልክቶችን ወይም እኩሌነት መስመሮችን አያውቁም.

\ Y , \ B , \ < , \> , \ w , \ W , \ ` , እና \ ' ከዋኞች ለጎል ናቸው . እነዚህ በጂኤንዩ መደበኛ ገለፃዎች ቤተ-መጻህፍት ላይ በተመሰረቱ ፋብሪካዎች ላይ የተመሰረቱ ናቸው.

የተለያዩ የትዕዛዝ መስመር አማራጮች ቁምፊዎችን በመደበኛ ሒደቶች ውስጥ እንዴት እንደሚተረጉሙ ይቆጣጠራሉ.

ምንም አማራጮች የሉም

በነባሪው ሁኔታ, gawk ከዚህ በላይ የተገለጹትን የ POSIX መደበኛ መግለጫዎችን እና የጂኤንዩ መደበኛ የዘንግ አንቀሳቃሾችን አቅርቦቶች ያቀርባል. ሆኖም ግን, የጊዜ ክፍተት መግለጫዎች አይደገፉም.

--ፖሴክስ

የ POSIX መደበኛ መግለጫዎች ብቻ የሚደገፉ ናቸው, የጂኤንዩ (GNU) ኦፕሬተሮች ልዩ አይደሉም. (Eg, w w ጋር ተመሳሳይ ነው ). የጊዜ ርዝመት አገላለፆች ይፈቀዳሉ.

- አስፈሪ

ባህላዊ የዩኒክስ አካክ መደበኛ ገለጻዎች ተዛምተዋል . የጂኤንዩ (GNU) ኦፕሬተሮች ልዩ አይደሉም, የጊዜ ክፍተት ግን የለም, እና የ POSIX ቁምፊ መደቦች ( [[alnum:]] እና የመሳሰሉት አይደሉም. በሶስትዮሽ እና ሄክሶዴሲማል የሚለቀቁ ገፆች በጥሬው እንደሚታዩ የተገለጹ ገጸ-ባህሪያት ቀጥተኛ ኤክስፕሬሽነቶችን ይወክላሉ.

--re-interval

ምንም እንኳን - የተገላቢጦሽ ሁኔታ ቢሆንም እንኳ የጊዜ ክፍሎችን በቋሚ ፊደል ይፍቀዱ.

ድርጊቶች

የእርምጃ መግለጫዎች በእቃዎች, { እና } ውስጥ ተዘግተዋል. የእርምጃ መግለጫዎች በአብዛኛዎቹ ቋንቋዎች የተቀመጠው የተለመደ አሰራር, ሁኔታዊ, እና በቢሊንግ መግለጫዎች ያካትታሉ. ኦፕሬተሮች, የትራፊክ ቁጥሮች, እና የግብዓት / ግቤት መግለጫዎች በ C. ውስጥ ካሉ በኋላ ተመስርተዋቸዋል.

ከዋኞች

በ AWK ውስጥ ያሉት ኦፐሬሽኖች ቅድሚያ እየቀነሱ ለመቀጠል

( ... )

ምድብ

$

የመስክ ማጣቀሻ.

++ -

ጭማሪ እና መቀነስ, ሁለቱም ቅድመ ቅጥያዎች እና ድህረ ምረጥ.

^

ትርፍ ክፍያ ( ** ሊገለገል ይችላል, እና ** ለተመደቢ ኦፕሬተር).

+ -!

አንድ መደመር, ያልተፈታ አነስ እና ሎጂካዊ አሉታዊ.

* /%

ማባዛት, ማካፈል, እና ሞጁለስ.

+ -

መደመር እና መቀነስ.

ቦታ

ሕብረቁምፊክ ማዋሃድ.

<>

<=> =

! = == መደበኛው መደራደር ኦፕሬተሮች.

~! ~

የተለመደው አገላለጽ ተዛማኔ, የተስተካከለ ግጥሚያ. ማሳሰቢያ: ~ ወይም ~ ~ በግራ በኩል ያለውን ቋሚ አገላለጽ ( / foo / ) አይጠቀሙ. አንዱን በቀኝ በኩል ብቻ ይጠቀሙ. አገላለፁ / foo / ~ exp(($ 0 ~ / foo /) ~ ጋር ተመሳሳይ የሆነ ትርጉም አለው. ይህ በአብዛኛው የታሰበው አይደለም.

ውስጥ

የቡድን አባልነት.

&&

አመክንዮ እና.

||

ምክንያታዊ OR.

?:

የ C ሁኔታዊ መግለጫ. ይህ የ form expr1 ነው ያለው ? expr2 : expr3 . Expr1 እውነት ከሆነ, የ expressነታችን እሴት expr2 ከሆነ , አለበለዚያ ግን expr3 ነው . ከ expr2 እና expr3 አንዱ ብቻ ነው ይገመገማል.

= + = - =

* = / =% = ^ = ምደባ. ሁለቱም የፍፁምነት ልውውጥ ( var = value ) እና ኦፕሬተር-ምደባ (ሌሎቹ ቅጾች) ይደገፋሉ.

ቁጥጥር ትዕዛዞች

የቁጥሩ መግለጫዎች እንደሚከተለው ናቸው-

( ሁኔታ ) መግለጫ [ other statement ] የ ( condition ) ገለጻ ለ ( expr1 ; expr2 ; expr3 ) ዓረፍተ ሐሳብ ለ ( var array array ) መግለጫ break መፍታት ቀጥል ሰንጠረዥ ሰርዝ [ index ] delete array exit [ expression ] { ዓረፍተ ነገሮች }

የአይኤም / መግለጫዎች

የግብዓቱ / የውጤት ዓረፍተ ሐሳቦች እንደሚከተለው ናቸው-

ዝጋ ( ፋይል [ , እንዴት ] )

ፋይልን, ቧንቧ ወይን ወይም ተባባሪ ሂደትን ዝጋ. የአማራጭ (የአምስት መንጃ) አንድ የአንድን መስመር ጫፍ ወደ አንድ ኮርፖሬሽን አንድ ጊዜ ሲያልቅ መጠቀም የሚቻለው እንዴት ነው ? የሕብረቁምፊ እሴት, ለ "ለ" ወይም "ከ" መሆን አለበት.

getline

ከቀጣዩ የግብአት $ 0 ን ያዘጋጁ. NF , NR , FNR ን አዘጋጅ .

getline < ፋይል

ከሚቀጥለው የፋይል መዝገብ $ 0 አዘጋጅ. NF አዘጋጅተናል .

getline var

ከግቤት ምዝግብ ማስታወሻ ላይ var ያወጣል; NR , FNR አዘጋጅ.

getline var < ፋይል

ከሚቀጥለው የፋይል መዝገብ ይምረጡ .

ትዕዛዝ getline [ var ]

ትዕዛዝ ያሂዱ ውስን ሆነው ወደ $ 0 ወይም var , ከላይ እንደተገለጸው.

ትዕዛዝ | እና መስመር [ var ]

ከላይ እንደታየው በ $ 0 ወይም በር , ለውጡን እንደ ኮኦ-ኦፕሬሽሽን ትዕዛዝ ያሂዱ. የጋራ ሂደቶች የጋግ ቅጥያ ናቸው.

ቀጥሎ

የአሁኑ የግቤት መዝገብ ማካሄድ ያቁሙ. የሚቀጥለው የግብዓት መዝገብ ተነባቢ እና ሂደቱ በ AWK ፕሮግራም ውስጥ ከመጀመሪያው ቅፅል ይጀምራል. የግብዓት ውሂቡ መጨረሻ ከተደረሰ, END (ዎች) ንብረቶች , ካሉ, ከተፈጸሙ.

የሚቀጥለው ፋይል

የአሁኑ የግቤት ፋይልን ማካሄድ ያቁሙ. የሚቀጥለው ግቤት ቅጂ ከሚቀጥለው የግቤት ፋይል ይመጣል. FILENAME እና ARGIND ተዘምነዋል, FNR ወደ 1 ተወስዷል, እና ሂደቱ በ AWK ፕሮግራም ውስጥ ከመጀመሪያው ስርዓተ-ነገር ይጀምራል. የግብዓት ውሂቡ መጨረሻ ከተደረሰ, END (ዎች) ንብረቶች , ካሉ, ከተፈጸሙ.

አትም

የአሁኑን መዝገብ ያትታል. የውጤት መዛግብቱ ከኦኤስኤኤስ ልዩ እሴት ጋር ይቋረጣሉ.

የታተመ የ expr-list

የንግግሮችን መግለጫዎች ያትሙ. እያንዳንዱ መግለጫ በኦኤስኤስ ልዩ ተለዋዋጭ እሴት ይለያል. የውጤት መዛግብቱ ከኦኤስኤኤስ ልዩ እሴት ጋር ይቋረጣሉ.

print expr-list > file

በፋይል ላይ የፎርሞች መግለጫዎችን ያትሙ. እያንዳንዱ መግለጫ በኦኤስኤስ ልዩ ተለዋዋጭ እሴት ይለያል. የውጤት መዛግብቱ ከኦኤስኤኤስ ልዩ እሴት ጋር ይቋረጣሉ.

printf fmt, expr-list

ቅርጸት እና አትም.

printf fmt, expr-list > file

በፋይል ላይ ቅርጸት እና ያትሙ.

ስርዓት ( ሲዲ-መስመር )

cmd-line ትዕዛዝን ያስፈጽሙ , እና የመውጫ ሁኔታን ይመልሱ. (ይህ በአሌ-POSIX ስርዓት ላይ ላይገኝ ይችላል.)

fflush ( [ ፋይል ] )

ከዋናው የውጤት ፋይል ወይም ፓይፒ ፋይል ጋር የተጎዳኙ ማቆሪያዎችን ሁሉ ይጥፉ. ፋይሉ ከጠፋ, መደበኛ ወጥ ውጤት ይለወጣል. ፋይሉ የናል አሻራ ከሆነ, ሁሉም ክፍት ግብዓቶች እና ቧንቧዎች ተቆጣጠራቸውም.

ተጨማሪ ውፅዓት ሪዛርቶች ለህትመት እና ህትመት ይፈቀዳሉ.

አትም >> ፋይል

ውጽቡን ወደ ፋይሉ ያያይዛል.

አትም ... | ትዕዛዝ

በፓይፕ ላይ.

አትም ... & ትእዛዝ

ውሂብን ወደ ኮኦፊኬጅ ይልካል.

getline ትዕዛዙ በፋይል 1 እና በ 1 ስህተት ላይ ይመልሳል. አንድ ስህተት በሚነሳበት ጊዜ ERRNO ችግሩን የሚገልፅ ሕብረቁምፊ ይዟል.

ማሳሰቢያ: ከላሊ መስመር (ፕላስ ) ወይም ኮምፕሌተር (ፕላስሂ) በመጠቀም , ከግንባታ ወይም ማተሚያ ( ፕሪምፕ) ውስጥ ከሆነ, አዲስ ትዕዛዞችን ለመፍጠር የቅርብ ጊዜውን () መጠቀም አለብዎት . የእድገትና ትራንስፎርሜሽን እቅዱን (ኤኤፍኤ) ሲመልሱ AWK በቀጥታ የቧንቧ ወይም የጋራ ሂደቶችን አይዘጋም.

የህትመት መግለጫ

የህትመት መግለጫ እና sprintf () ተግባር የ AWK ቅጂዎች (ከታች ይመልከቱ) የሚከተሉትን የልወጣ መግለጫ መስፈርቶች ይቀበላሉ:

% c

የ ASCII ቁምፊ. ለ % c ነጋሪ እሴት ቁጥራዊ ከሆነ, እንደ አንድ ቁምፊ ይታያል እና ይታተማል. አለበለዚያ, ነጋሪ እሴቱ ሕብረቁምፊ እንደሆነ ተደርጎ ይቆጠራል, እና የመጀመሪያ ሕብረቁምፊው የመጀመሪያው ቁምፊ ይታተማል.

% d , % I

የአስርዮሽ ቁጥር (ኢንቲጀር).

% e,% E

የቅንጥብ ነጥብ ቁጥር [-] d.dddddde [+ - dd] . የ % E ቅርፀት በ e ይጠቀማል.

% f

የቅንፉ ተንሳፋፊ ቁጥር [-] ddd.dddddd .

% g,% G

ከማለቁ ውጭ ዜሮዎች ተጭነዋል, % e ወይም % f ቅየራ, ማንኛውም አጭር, ተጠቀም. የ % G ቅርፀት ከ % e ይልቅ % E ን ይጠቀማል.

% o

ያልተፈረመ የስምንትዮሽ ቁጥር (እንዲሁም ኢንቲጀር).

% u ያልተፈረመ የአስርዮሽ ቁጥር (በድጋሚ, ኢንቲጀር).

% s

የቁምፊ ሕብረቁምፊ.

% x,% X

ያልተፈረመ የአሳራስድስት ቁጥር (ኢንቲጀር). የ % X ቅርፀት ከ ABCDEF ይልቅ abcdef ን ይጠቀማል.

%%

አንድ ነጠላ % ቁምፊ; ምንም ሙግት አይቀየርም.

አማራጭ, ተጨማሪ መመዘኛዎች በ " %" እና በቁጥጥር ደብዳቤ ውስጥ ሊሆኑ ይችላሉ:

ቁጥር $

በ <ፎል> ላይ እዚህ ቁጥር ላይ ያለውን የ ይጠቀሙ. ይህ የቦታ አቀማመጥ ይባላል እና በዋነኛው የ AWK ፕሮግራም ውስጥ ሳይሆን በተተረጎሙት የቅርፀት ቅርጾች ላይ በተተረጎሙት መተርጎም ነው. የጊልት ቅጥያ ነው.

-

ይህ አገላለጽ በእርሶ መስክ በግልጽ እንዲጸድቅ ማድረግ አለበት.

ቦታ

ለዕይታ ልወጣዎች, ከባዶ ቦታ ጋር ያሉ አዎንታዊ እሴቶችን ቀዳማዊ እሴቶችን, እና ከመጥቀሻ ምልክት ጋር ያሉ አሉታዊ እሴቶችን.

+

ከመጠን በላይ የሆነ መለጠፊያ (ከታች ይመልከቱ), የመደመር ምልክት ለቁጥር ልወጣ ሁልጊዜ ምልክት እንዲያቀርብ ይደነግጋል, ምንም እንኳን ቅርጹ የሚቀርበው መረጃ አዎንታዊ ቢሆንም. + የቦታ ማስተካከያውን + ይደመስስበታል.

#

ለተወሰኑ ቁጥጥር ደብዳቤዎች `` አማራጭ ቅጽ "" ይጠቀሙ. ለ % o , መሪ ዜሮን አቅርብ. ለ % x እና ለ % X ለ nonzero ውጤት መሪ አምድ 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 () የተለመዱ ወርድ እና ትክክለኛ ችሎታዎች ይደገፋሉ. * በድምዝም ሆነ በቃለ-ሕዋሳዊነት ምትክ እሴቶቹን ከሪፖርቱ ዝርዝር ወደ printf ወይም sprintf () ይወስደዋል . የቦታው ገላጭ መለኪያ በንቃተ-ወርድ ወይም ትክክለኛነት ለመጠቀም ቁጥሮችን በ <<የቅርጽ ሕብረቁምፊው ውስጥ ካስገባው በኋላ> ለምሳሌ, "% 3 $ * 2 $. * 1 $ s" .

ልዩ የፋይል ስሞች

በፋይል ወይም በፋይል ውስጥ ወደ I ን / I / O ፊደላትን በማዛወር , ወይም በፋይሉ በኩል ከትክክለኛ መስመር በመውጣቱ , አንዳንድ ጊዜ አንዳንድ የልዩ የፋይል ስሞችን ይመለከታቸዋል . እነዚህ የፋይል ስሞች ከዎክካዊ የወላጅ ሂደት (በተለምዶ ሼል) የተወረሱ የፋይል ገላጮች (" ገጾችን ") ለመክፈት ያስችላሉ. እነዚህ የፋይል ስሞች ደግሞ በትእዛዝ መስመር ፋይሎችን ለመሰየም ጥቅም ላይ ሊውሉ ይችላሉ. የፋይል ስሞች:

/ dev / stdin

መደበኛ ግብዓቶች.

/ dev / stdout

መደበኛ ውፅዓት.

/ dev / stderr

መደበኛ ስህተት ውጤት.

/ dev / fd / n

ከፋይል አርታዒው ጋር የተያያዘ ፋይል.

እነዚህ ለስህተት መልዕክቶች በጣም ጠቃሚ ናቸው. ለምሳሌ:

ታትመው ነበር! " > "/ dev / stderr"

ነገር ግን መጠቀም አለብዎት

ታትመው ነበር! " | "cat 1> & 2"

የሚከተሏቸው ልዩ የፋይል ስሞች TCP / IP የአውታረመረብ ግንኙነቶችን ለመፍጠር በ & co-process ከዋኙ ጋር ሊጠቀሙበት ይችላሉ.

/ inet / tcp / lport / rhost / rport

በአካባቡ ወደብ ላይ ለ TCP / IP ግንኙነት ፋይሉን ወደ ራቅ ወደብ ወደብ በርቀት አስተናጋጅ ራት ሆፕ ለማድረግ. ስርዓቱ ወደብ ለመምረጥ የ 0 በር ይጠቀሙ.

/ inet / udp / lport / rhost / rport

ተመሳሳይ, ግን በ TCP / IP ፋንታ UDP / IP ይጠቀሙ.

/ inet / raw / lport / rhost / rport

ለወደፊት ጥቅም ላይ ተጠይቋል.

ሌሎች ልዩ የፋይል ስሞች ስለ ስራ ማስኬድ ሂደት መረጃን ማግኘት ይችላሉ. እነዚህ የፋይል ስምዎች አሁን ጊዜ ያለፈባቸው ናቸው. የሚሰጡትን መረጃ ለማግኘት የ PROCINFO ድርድርን ይጠቀሙ. የፋይል ስሞች:

/ dev / pid

ይህን ፋይል ማንበብ የአሁኑን ሂደትን የአሂድ መታወቂያ, በአስርዮሽ, ከአዲሱ መስመር ጋር የተቋረጠ ነው.

/ dev / ppid

ይህን ፋይል በማንበብ የአሁኑን ሂደቱን የወላጅ የስራ ሂደት መታወቂያ, በአስርዮሽ, በአዲሱ መስመር እንዲቋረጥ ይደረጋል.

/ dev / pgrpid

ይህን ፋይል በማንበብ የአሁኑን ሂደትን የሂደቱን የቡድን መታወቂያን, በአስርዮሽ, ከአዲሱ መስመር ጋር የተቋረጠ.

/ dev / ተጠቃሚ

ይህን ፋይል ማንበብ ከአንድ አዲስ መስመር ጋር የተቋረጠ አንድ መዝገብ ይመልሳል. መስኮቹ ከባዶ ቦታዎች ጋር ተለያይተዋል. $ 1getuid (2) የስርዓት ጥሪ ዋጋ, $ 2 የውሂብ ጥሪው (2) የስርዓት ጥሪ ዋጋ, $ 3getgid (2) የስርዓት ጥሪ እሴት, እና $ 4get'gid እሴት ነው (2) የስርዓት ጥሪ. ሌሎች ተጨማሪ መስኮች ካሉ, በቡድን ቡድኖች (2) የተመለሱ የቡድን መታወቂያዎቹ ናቸው . በርካታ ቡድኖች በሁሉም ስርዓቶች ላይ ድጋፍ አይደረግላቸውም.

ቁጥራዊ ተግባራት

AWK የሚከተለው ውስጣዊ የስነ-ታሪክ ስራዎች አሉት-

atan2 ( y , x )

y / x አርክታንጀን በራዲያንስ ይመልሳል.

ኮስ ( ኤክስፕሪም )

በራዲያንስ ውስጥ የ expr ምሳሌያዊ ኮሳይን ይመልሳል.

exp ( expr )

የቋንቋ ተግባሩ.

int ( expr )

ወደ ኢንቲጀር ይቆርጣል.

ምዝግብ ማስታወሻ ( ውስት )

የተፈጥሮ ሎጋሪዝም ተግባር.

ራንዳ ()

በ 0 እና 1 መካከል የቁጥር ቁጥር ያወጣል.

ኃጢአት ( ተረጓሚ )

በራዲያንስ ውስጥ የ expr ምሳሌዎች ይመልሳል.

ስክሪት ( ትውፊት )

የካሬ ሩት ተግባር.

srand ( [ expr ] )

ለተለዋዋጭ የቁጥር ፈላጊዎች ዘይቤን እንደ አዲስ ዘር ይጠቀማል. ምንም ዘይቤ ካልተሰጠ, የቀኑ ጊዜ ጥቅም ላይ ይውላል. የመመለሻ እሴት ለነፊቱ የቁጥር ፈላጊው ቀዳሚው ዘር ነው.

ሕብረቁምፊ ተግባሮች

ጌው የሚከተለው ሕብረቁምፊ ተግባራት አሉት

asort ( s [ , d ] )

በምንጩ ድርድር ውስጥ ያሉ የንጥሎች ብዛት ይመልሳል. የ s አባሎች እሴቶችን ለማነጻጸር የ < gawk <መደበኛ የሆኑ ደንቦችን በመጠቀም ይለወጣሉ እና የተጣኑት የ s ዋጋዎች ኢንዴክሶች ከ 1 ጋር ከሚጀምሩ ተከታታይ ኢንዴጀሮች ይተካሉ. B > አማራጭ አማራጭ አደባባጭ ድርድር <ኤ> ከተገለጸ በ < , እና d ይለያል, የምንሄደውን የምንጭ ድርድር ኢንዴክሶች አይለወጡም.

የሰዎች ( r , s , h [ , t ] )

ከመደበኛ የሒሳብ ሓረግ ተዛማጅ የዒላማ ሕብረቁምፊዎችን ፈልግ. H ከግ ወይም ቢጀምር ጫወታ ከሆነ, የ r ውድድሮችን በሙሉ በ s ይቀይሩ . አለበለዚያ, የትኛው የ r ት) ን ለመተካት ቁጥር h ነው. T ካልተቀረበ, ይልቁንስ $ 0 ጥቅም ላይ ይውላል. በተለዋጭ ጽሁፍ ውስጥ, ቅደም ተከተል \ n , ይህም n ከ 1 ወደ 9 ባለ አሃዝ, ከ " n " ጋር የተጣጣመረ ጽሁፉን ለማመልከት ሊያገለግል ይችላል. ቅደም ተከተል \ 0 ቁምፊ እና . ከንዑስ ክሊክ () እና gsub () በተቃራኒው የተስተካከለው ህብረቁምፊ እንደ ተግባር ውጤት ይመለሳል, እና የመጀመሪያው ዋንኛ ህብረቁምፊ አልተቀየረም.

gsub ( r , s [ , t ] )

በህብረቁምፊው ውስጥ መደበኛ አጻጻፍ ( r) ከሚዛመደው ንኡስ ሕብረቁምፊ ጋር ማዛመድ, የሕብረ ቁምፊዎችን ይተካሉ እና የመቀየሪያዎችን ብዛት ይመልሱ. T ካልቀረበ, $ 0 ይጠቀሙ. አንድ & በምትተኪ ጽሑፉ ላይ በትክክል የተዛመደ ጽሑፍ ጋር ተተኩ. ቃል በቃል \ & ለማግኘት. (ይሄ እንደ "\\ &" መታየት አለበት; GAWK ይመልከቱ : በቁጥር () , gsub () እና ኗቢ () በተተኪ ጽሑፍ ላይ ስለ && እና የኋላ ሰከንዶች ደንቦች ሙሉ ገለጻ ያቀርባል.)

መረጃ ጠቋሚ ( s , t )

በስህተቶች s ውስጥ ያለው ሕብረቁምፊን ጠቋሚ ያወጣል, ወይም 0 ካልሆነ ያወጣል . (ይህ የሚያሳየው የቁምፊዎች ኢንዴክስ በአንዱ ነው.)

ርዝመት ( [ s ] )

የሕብረቁምፊው ርዝመት ይመልሳል , ወይም የ $ 0 ርዝመት ካልቀረበ.

ተዛማጅ ( s , r [ , a ] )

መደበኛ የሒሳብ ሐረግ ሲኖር ወይም 0 ጥራቱ ከሌሉ , እና የ RSTART እና RLENGTH እሴቶችን ያዘጋጃል, በ s ውስጥ ያለውን ቦታ ይመልሳል. የክርክሩ ቅደም ተከተል እንደ ~ operator: str ~ re ጋር ተመሳሳይ መሆኑን ልብ ይበሉ. አርእስ ከተቀረበው, አንድ ግልጽ ይደረጋል, ከዚያም ከ 1 እስከ n ያሉ ክፍሎች በ " r" ውስጥ ከሚዛመዱት የተንዛዙን ቅንብር ጋር ከሚጣጣሙ የ " s " ክፍሎች የተሞሉ ናቸው. የ 0'ኛ አባል በጠቅላላው መደበኛ ገለጻ r ጋር የተመሳሰለ የ s ክፍልን ይዟል.

መለያየት ( s , a [ , r ] )

ሕብረቁምፊዎችን በመደበኛ የሒሳብ ሓረግ r ውስጥ በድርድር ላይ ይከፍላል , እና የእጮቹን ቁጥር ይመልሳል. አር ከተተወ FS ይጠቀማል. የድርድሩ መጀመሪያ አንጸባረቀ. ከላይ እንደተገለጸው ከመስመር መከፋፈል ጋር ተመሳሳይ ባህሪያትን ማካተት.

sprintf ( fmt , expr-list )

fmt መሠረት የ « expr-list» ን ያትሙ እና የተሰራውን ሕብረቁምፊ ይመልሳል.

strtonum (str )

Str ደንቦችን ይፈትሻል , የእሱን ቁጥራዊ እሴት ይመልሳል. ሽው ከደረጃ 0 መጀመር ቢጀምር, strtonum () , str (ባለሁለት ስምንዮሽ) ቁጥር ነው. በክርክር 0x ወይም 0X ከጀመረ strtonum () ሃይ ቁጥር የሄክዴሲሲማል ቁጥር ነው.

ንዑስ ( r , s [ , t ] )

ልክ እንደ gsub () , ነገር ግን የመጀመሪያውን ህብረቁምፊ ብቻ ተተክቷል.

ንዑስ ክዋኔ ( s , i [ , n ] )

በጣም የሚቀራረውን የ n የባህርያት ንኡስ ሕብረ ሕዋስ በ i ይጀምራል . N የተተወ ከሆነ, የተቀሩት s ጥቅም ላይ ይውላል.

ወደ ቫልታ (ፍሬ )

str ውስጥ ያሉ ሁሉም የከፍተኛ-ቁምፊ ቁምፊዎች ወደ ተጓዳኙ ዝቅተኛ-ፊደሎች ተተርጉሟል. አልባ ፊደል ያላቸው ቁምፊዎች አልተቀኑም.

ብርጭቆ

በ string ውስጥ ያሉ ሁሉም ንዑስ-ሆሄ ቁምፊዎች ወደ ተጓዳኙ ዋና ዋና አካባቢያቸው ተተርጉሟል. አልባ ፊደል ያላቸው ቁምፊዎች አልተቀኑም.

ጊዜ ተግባሮች

የ AWK ፕሮግራሞች ዋነኛ ተጠቃሚ ከሆኑ ጊዜያዊ የትራፊክ መረጃን ያካተቱ የምዝግብ ማስታወሻዎችን (ፋይሎችን) በማዘጋጀት ላይ ነው, ጋዋ ደግሞ የጊዜ ማህተሞችን ለመውሰድ እና እነሱን ቅርጸት ለማግኘት የሚከተሉት ተግባሮችን ያቀርባል.

mktime ( datespec )

ሬኒንግ ሰዓት በ systime () በተመለሰው ተመሳሳይ የጊዜ ማህተም ላይ ይታያል. የቀን ቅርፅ ( YYYY MM DD HH MM SS [DST]) ቅርጸት ተከታታይ ሕብረ ቁምፊዎች ነው. የሕብረቁምፊው ይዘት በየአመቱ, በየዓመቱ ከ 1 እስከ 12 ያለውን ወር, ከ 1 ቀን እስከ 31 ቀን, የቀኑ ሰዓት ከ 0 ወደ 23, እና ከ 0 እስከ 59, እና ሁለተኛው ከ 0 እስከ 60, እና አማራጭ አማራጭ የፀሐይ ብርሃን ማስቀመጫ ጠቋሚ. የእነዚህ ቁጥሮች እሴቶች በተጠቀሱት ክልሎች ውስጥ መሆን የለባቸውም. ለምሳሌ, 1 ሰዓት ከ -1 ያለው ማለት የእኩለ ሌሊት 1 ሰዓት ነው. መነሻ-ዜሮ ግሪጎሪያን የቀን አቆጣጠር ከዓመቱ ከ 1 ዓመት እና ከዓመት 1 በፊት-አመት ከገባ በኋላ 0 ይሆናል ተብሎ ይገመታል. ጊዜው በአከባቢው የሰዓት ሰቅ ላይ ነው ተብሎ ይገመታል. የቀን ብርሃን ቁጠባ ጥቆማው አዎንታዊ ከሆነ, ጊዜው የቀን ብርሃን ቆጣቢ ሰዓት ነው ተብሎ ይገመታል. ዜሮ ከሆነ, ጊዜው መደበኛ ሰዓት ነው ተብሎ ይገመታል; እና አሉታዊ (ነባሪ), ሜቲሜቲ () የቀን ሰዓት ቆጣቢ ለተወሰነ ጊዜ ተፈጻሚ መሆኑን ለመወሰን ይሞክራል. ቀነ-ገደቡ በቂ ነጂዎችን የማይይዝ ከሆነ ወይም የውጤት ጊዜው ከክልል ውጭ ከሆነ, ሜቲሜት () ይመልሳል -1.

የእረፍት ጊዜ ( [ ቅርጸት [ , የጊዜ ማህተም ]] )

በጊዜ ቅርፀት መሰረት የጊዜ ማህተምን ቅርፀት ይስጡ . የጊዜ ማህተምsystime () ከተመለሰው ቅርጽ ጋር ተመሳሳይ መሆን አለበት. የጊዜ ማህተም ካላገኘ, የቀኑ የአሁኑ ጊዜ ጥቅም ላይ ይውላል. ቅርፀቱ ከጠፋ የቀን ውጤቱ (1) ጋር ተመሳሳይ ነባሪ ቅርጸት ይጠቀማል. በእርግጠኝነት የተረጋገጡትን የቅርጽ ልወጣዎች በተመለከተ ለ strftime () ተግባር በ ANSI C ውስጥ ይመልከቱ. የባለቤትነት ስሪት (3) እና የመዝገበ-ቃላት ገጽታ ከጎግ ጋር ነው . ያ ስሪት ጥቅም ላይ የሚውል ከሆነ, በዚያ ሰው ገጽ ውስጥ የተገለጹት ሁሉም ልወጣዎች ለመደበቅ ዝግጁ ናቸው.

ስርዓት ()

ኤፕሎ (1970-01-01 00:00:00 UTC ከ POSIX ስርዓቶች) ጀምሮ የአሁኑን ጊዜ እንደ ቁጥር ሰከንዶች ይመልሳል.

Bit Manipulations Functions

ከሶፍት ቨርዥን ስሪት 3.1 ጀምሮ, የሚከተለው ትንሽ የስነምግባር ተግባራት ይገኛሉ. ሁለት ድርብ ትክክለኛ የሆኑ ተንሳፋፊ ነጥቦችን እሴት ወደ ያልተረጋገጡ ረጅም ኢንቲጀሮች በመለወጥ, ኦፕሬሽንን በማስተካከል, ከዚያም ውጤቱን ወደ ተንሳፋፊ ነጥብ በመለወጥ ይሰራሉ. ተግባሮቹ የሚከተሉት ናቸው:

እና ( v1 , v2 )

v1 እና v2 የተቀረጹትን እቃዎች እና ቁጥሮች ይመለሱ.

ሙሉ (ዋጋ )

የሆድሱን የቫልፕል ማሟያ ይመልሱ.

lshift ( ዋጋ , ቆጠራ )

የቫል እሴትን በቁጥር ቢቶች ተለውጠዋል.

ወይም ( v1 , v2 )

v1 እና v2 የተቀረጹትን ዋጋዎች ጥብቅ ወይም ኦውራን ይመለሱ.

rshift ( ዋጋ , ቆጠራ )

በትክክለኛ ቁጥሮች የተስተካከለውን እሴት ይመልሱ.

xor ( v1 , v2 )

v1 እና v2 ከሚቀርቡት ዋጋዎች ጥራዝ XOR ን ይመልሱ.

ዓለምአቀፍ ማስፈጸሚያ ተግባራት

ከሶፍት ቨርዥን ሶፍትዌር 3.1 ጀምሮ, የሚከተለው ተግባር በ AWK ፕሮግራምዎ ላይ ሕብረ ቁምፊዎችን ለመተርጎም ጥቅም ላይ ሊውል ይችላል. ለተሟላ ዝርዝሮች, GAWK ን ይመልከቱ : ውጤታማ AWK ፕሮግራሚንግ .

bindtextdomain ( ማውጫ [ , domain ] )

ጎሞው «.» በተሰኘው ቦታ (ለምሳሌ, በመሞከር ጊዜ ውስጥ) ውስጥ የማይካተቱ ወይም ላይቀበሉ በማይችሉበት ጊዜ የ .mo ፋይሎችን የሚፈልግበትን አቃፊ ይገልጻል. ጎራ «የተገደበ» ማውጫውን ይመልሳል. '

ነባሪው ጎራTEXTDOMAIN ዋጋ ነው. ማውጫ "" የናል "" ህብረቁምፊ ከሆነ ( "" ) ከሆነ, bindtextdomain () ለተጠቀሰው ጎራ የአሁኑን መክተያ ይመልሳል.

dcgettext ( string [ , ጎራ [ , ምድብ ]] )

ለአካባቢያዊ ምድብ ምድብ በፅሁፍ የጎራ ጎራ የሕብረ- ማተሙን ትርጓሜ ይመልሳል. የጎራ ነባሪ እሴት የአሁኑ ዋጋ የ TEXTDOMAIN ነው . ለዚህ ምድብ ነባሪ ዋጋ "LC_MESSAGES" ነው .

ለክፍሉ እሴት ካቀረቡGAWK ውስጥ በተገለጹት የአካባቢው ምድቦች መካከል አንድ ሕብረቁምፊ መሆን አለበት : ውጤታማ AWK ፕሮግራሚንግ . እንዲሁም የጽሑፍ ጎራዎችን ማቅረብ አለብዎት. የአሁኑን ጎራ መጠቀም ከፈለጉ TEXTDOMAIN ይጠቀሙ.

dcngettext ( string1 , string2 , number [ , domain [ , ምድብ ]] ))

ለአካባቢያዊ ምድብ ምድብ በፅሁፍ የጎራ ጐራዎች ውስጥ ሕብረቁምፊ 1 እና ሕብረቁምፊ 2 ቁጥርን የሚያስተረጉም የብዙ ቅርጽ ይመልሳል. የጎራ ነባሪ እሴት የአሁኑ ዋጋ የ TEXTDOMAIN ነው . ለዚህ ምድብ ነባሪ ዋጋ "LC_MESSAGES" ነው .

ለክፍሉ እሴት ካቀረቡGAWK ውስጥ በተገለጹት የአካባቢው ምድቦች መካከል አንድ ሕብረቁምፊ መሆን አለበት : ውጤታማ AWK ፕሮግራሚንግ . እንዲሁም የጽሑፍ ጎራዎችን ማቅረብ አለብዎት. የአሁኑን ጎራ መጠቀም ከፈለጉ TEXTDOMAIN ይጠቀሙ.

USER የተዘጋጁ ተግባራት

በ AWK ውስጥ ያሉ ተግባራት እንደሚከተለው ተወስነዋል-

የተግባር ስም ( የግብአት ዝርዝር ) { statements }

አፈፃፀሙ የሚከሰተው በተወሰኑ ቅጦች ወይም ድርጊቶች ውስጥ ከተገለጹት መካከል ነው. በሂደት ጥሪው ውስጥ የሚሰጡ ትክክለኛ መመዘኛዎች በሂደት ውስጥ የተሰጡትን መደበኛ መመዘኛዎች ለማፍጠን ስራ ላይ ይውላሉ. አሃዞች በማጣቀሻዎች ይተላለፋሉ, ሌሎች ተለዋዋጮች በእሴዶች ይተላለፋሉ.

ተግባራት ቀድሞውኑ የ AWK ቋንቋ አካል ስላልሆኑ የአካባቢያዊ ተለዋዋጭ ምግቦች አቅርቦቱ ያልተለመዱ ናቸው: በግብአት ዝርዝር ውስጥ እንደ ተጨማሪ ልኬት ይፋሉ. ስብሰባው በመለኪያ ዝርዝሩ ውስጥ ተጨማሪ ክፍተቶችን ከእውነተኛ መለኪያዎች መለየት ነው. ለምሳሌ:

ተግባሩ f (p, q, a, b) # a እና b {...} / abc / {...; f (1, 2); ...}

ምንም እንኳን በየትኛውም በመጠባበቂያ የሌለው ቦታ ላይ የተርጋውን ስም ወዲያውኑ ለመከተል በሂደት ጥሪ ውስጥ ያለው የግራ ቅንፍ ያስፈልጋል. ይህ ከካፒታል (ኦፕሬተር) ጋር ከመተንተን አሻሚ አለመሆን ነው. ይህ ገደብ ከላይ ከተዘረዘሩት አብሮ የተሰሩ ተግባራት ላይ አይተገበርም.

ተግባሮች እርስ በርሳቸው መደወል ይችላሉ, እና በድጋሚ ሊደጋገም ይችላል. እንደ አካባቢያዊ ተለዋዋጮች ጥቅም ላይ የሚውሉት የተግባር መለኪያዎች ወደ ነጠላ ሕብረቁምፊው ይጀምራሉ እንዲሁም በተግባር ተግባራት ላይ ቁጥር ቁጥር ዜሮ ነው.

አንድ እሴት ወደ ተግባር ለመመለስ ተመለስ ልጥፎችን ይጠቀሙ. ምንም እሴት ካልተሰጠ ወይም የእጅ ዋጋው ካልተጠናቀቀ እቃቱ ያልተገለጸ ነው.

ሬቲ-ፍራንክ (ኦፕሬሽን) ተዘጋጅቶ በነበረበት ወቅት በጋዜጠኝነት ፋንታ ላልተጠቀሱ ተግባራት በወቅቱ ያልተፈጠሩ ተግባራት ላይ ጥሪዎችን ያስጠነቅቃል. በሂደት ጊዜ ያልተጠበቀ ተግባር በመጠየቅ ላይ ከባድ ስህተት ነው.

በሥራ ላይ ፈካሚነት ( function) የሚለው ቃል ጥቅም ላይ ሊውል ይችላል.

በአዳዲስ ሞተሮች አዲስ አቅም ያለው

ከሶፍት ቨርዥን 3.1 ስሪት ጀምሮ በአዲሱ የተዋሃዱ ተግባራት ላይ በአስፈላጊው አስተርጓሚ ለህት ቃላትን ማከል ይችላሉ. ሙሉ ዝርዝሮች ከዚህ በራሪ ገፅ ወሰን ውጭ ናቸው. GAWK ን ተመልከት : ለዝርዝሮቹ ውጤታማ ወርልድ ፕሮግራሙ .

ቅጥያ ( ነገር , ተግባር )

በነባሪ የተጠለለው የተጋራ ነገር ፋይልን በአዳራሽነት ያገናኙ, እና ከዚያ በሚነቃቃው ውስጥ ተግባር ይጀምሩ, ማነቃነቅን ለማከናወን. እነዚህ ሁለቱንም እንደ ሕብረ ቁምፊዎች መስጠት አለባቸው. በሂሳብ የተመለሰውን እሴት ይመልሳል.

ይህ ተግባር የቀረበው በ GAWK ውስጥ ውጤታማ የሆነ የ AWK ፕሮግራሚንግ ነው , ነገር ግን ስለዚህ ባህርይ ያለው ሁሉም ነገር በሚቀጥለው መግለጫ ላይ ሊቀየር ይችላል. ይህን ባህሪ ለመልቀቅ ለማያደርጉት ለማንም ላለመጠቀም በጣም እንመክራለን.

ምልክቶች

ፓግዋክ ሁለት ምልክቶችን ይቀበላል. SIGUSR1 መገለጫ እና የተግባር ጥሪ ቁልል ወደ የመገለጫ ፋይል, ወይም awkprof.out ወይም በ -profile አማራጭ ውስጥ የተሰየመ ማንኛውም ፋይል ላይ እንዲጥል ያደርገዋል . ከዚያ መሮጥ ይቀጥላል. SIGHUP የመገለጫውን እና የተግባር ጥሪ ቁልል እንዳይገለብጡ እና ከዚያ መውጣት ያስገድደዋል.

ምሳሌዎች

የሁሉንም ተጠቃሚዎች የመግቢያ ስሞች አትም እና ተይ : BEGIN {FS = ":"} {print $ 1 | በፋይል ውስጥ ያሉትን መስመሮች ቆጠሩት : {nlines ++} END {print nlines} እያንዳንዱን መስመር በፋይሉ ውስጥ በቅድሚያ ያስቀምጡ: {print FNR, $ 0} ጥምረት እና የመስመር ቁጥር (በአንድ ገጽታ ላይ ልዩነት): {print NR, $ 0}

ውስጣዊነት

የንድፍ ቋሚዎች በጣምብ ጥቅሶች ውስጥ የተካተቱ የቁምፊዎች ቅደም ተከተልዎች ናቸው. በእንግሊዝኛ ቋንቋ የማይናገሩ ከሆነ, በ AWK ፕሮግራም ውስጥ ሕብረትን ወደተወለደ ተፈጥሯዊ ቋንቋ ትርጉም እንደሚፈልጉ ማሳየት ይቻላል. እነዚህ ሕብረቁምፊዎች በ AWK ውስጥ ቁልፍ መሪ ምልክት (`` _ '') ምልክት የተደረገባቸው ናቸው. ለምሳሌ,

አይሆንም 'BEGIN {print "hello, world"}'

ሁልጊዜ ሰላምታ ያቀርባል, ዓለም . ግን,

gawk 'BEGIN {print _ "ሠላም, አለም"}'

በፈረንሳይ ውስጥ ፎቶግራፍ ለመጻፍ ይችላሉ.

የአካባቢውን AWK ፕሮግራም ለማዘጋጀትና ለማስተዳደር በርካታ እርምጃዎች አሉ.

1.

ከጽሑፍዎ ጋር የተዛመዱ ስሞች የጽሑፍ ጎራውን ለመወሰን ወደ TEXTDOMAIN ተለዋዋጭ እሴት ለመመደብ የ BEGIN ርምጃ ያክሉ.


BEGIN {TEXTDOMAIN = "myprog"}

ይሄ ከፕሮግራሙ ጋር የተጎዳኘውን የ .mo ፋይልን እንዲያገኝ ያስችለዋል. ያለዚህ ደረጃ, ጋዋው የመልዕክት ጽሑፍ ጎራዎችን ይጠቀማል, ይህ ለፕሮግራሙዎ ትርጉሞችን አያካትትም.

2.

ሊታዩ የሚገባቸውን ከግርጌ ሰረዘቀጦች ጋር መተርጎም

3.

አስፈላጊ ከሆነ እንደ አስፈላጊነቱ በፕሮግራሙ ውስጥ ያለውን dcgettext () እና / ወይም bindtextdomain () ይጠቀሙ .

4.

ለፕሮግራምዎ .po ፋይሉን ለማዘጋጀት gawk -gen-po -f myprog.awk> myprog.po ያስኪዱ .

5.

ተገቢ የሆኑ ትርጉሞችን ያቅርቡ, እና የሚዛመደ የ .mo ፋይልን ይገንቡ እና ይጫኑ.

የአለምአቀፍነት ባህሪይGAWK ውስጥ ውጤታማ የሆነ የ AWK ፕሮግራሚንግ ውስጥ ተብራርቷል .

Posix ተኳሃኝ

ለጎል ዋነኛ ግብ ከ POSIX መደበኛ እና ከ UNIX awk ስሪት ጋር መወዳደር ነው. ለዚህም, ጋቭ በ AWK መጽሐፍ ውስጥ ያልተገለጹትን የማይታዩትን ባህሪያት ያካትታል, ነገር ግን በከሎል ላቦራሪዎች የ awk ስሪት አካል ናቸው, እና በ POSIX መደበኛ ውስጥ ናቸው.

መጽሐፉ የቁልፍ መስመር ተለዋዋጭ አሰራር ምን እንደሚሆን ያሳያል, < awk <ክፋይውን እንደፋይል ሲከፍት , ይህም ከ BEGIN መፈተሽ በኋላ ከተፈጸመ በኋላ ነው. ይሁን እንጂ ቀደም ሲል በተተገበረባቸው ቦታዎች, እንዲህ አይነት ተልዕኮ ከማናቸውም የፋይል ስሞች በፊቱ ሲታይ, ስራው የሚካሄደው ከ BEGIN ማቆሙ በፊት ነበር. ትግበራዎች በዚህ `ባህሪይ 'ላይ ተጭነዋል ." <ሰነድ <ሰነድ <ከሰነዱ ሰነድ ጋር እንዲዛመድ በሚቀየርበት ጊዜ <የድሮው ባህሪ ላይ ተመስርቶ አፕሊኬሽኖችን ለመሙላት የ -v አማራጭ ከመተየብ በፊት a < (ይህ ባህሪ በሁለቱም ቢል ላቦራቶሪዎች እና በጂኤንዩ ገንቢዎች ተስማምቷል.)

በትግበራ ​​የተወሰኑ ባህሪያት የ- አማራጭ ከ POSIX መደበኛ.

ግብረ -በቦች በሚያካሂዱበት ጊዜ ጋዋው የ « ነ-» የሚለውን ልዩ አማራጭ «ነጋሪ እሴቶችን» ለማስታወቅ ይጠቀማል. በተኳሃኝነት ሁነታ, ስለ አላስፈላጊ ነገር ግን ያልታወቁ አማራጮችን ያስጠነቅቃል. በተለመደው ቀዶ ጥገና, እንዲህ ያሉት ነጋሪ እሴቶች ወደ ሂደቱ ለ AWK ይተላለፋሉ.

የ AWK መጽሐፍ የ srand () እሴትን ዋጋ አይሰጥም . የ POSIX መደበኛ እንደ ነባራዊው የቁጥር ቅደም ተከተል ተከታታይ ክትትል እንዲያደርግ የሚጠቀምበትን ዘር ይመልሳል. ስለዚህ በትልቁም ውስጥ ዝርያው () በወቅቱ ያለውን ዘር መልሶ ይመለሳል.

ሌሎች አዲስ ባህሪያት እነዚህ ናቸው ብዙ-F አማራጮች (ከ MKS awk ); የ ENVIRON ድርድር; የ \ a , እና \ v escape scapes (መጀመርያ በአጀዋ ውስጥ የተሰራ እና ወደ Bell Laboratories ስሪት ውስጥ ይመዘገባል ); ( ቫለር) እና ፑቲቭ () አብሮ የተሰሩ ተግባራት (ከ Bell Laboratories ስሪት); (በ Bell Labatories ስሪት የመጀመሪያውን አከናውኗል).

ታሪካዊ ባህሪያት

አርባ የሚደግፉ የታሪክ የ AWK ትግበራዎች ሁለት ገፅታዎች አሉ. በመጀመሪያ በቃለ- ምልልሱ () ውስጠ-ግንቡ ተግባሩ, ምንም ጭቅጭቅ ባለመሆኑ ብቻ ሳይሆን ያለጽሁፎች እንኳን መጥራት ይቻላል. በመሆኑም,

a = length # ቅዱስ አልጌል 60, ባትማን!

አንድ አይነት ነው

a = length ()
a = length ($ 0)

ይህ ባህሪ በ « POSER » ደረጃ ውስጥ «የተቋረጠ» ተብሎ ምልክት ተደርጎበታል, እና -lint የሚለው በትእዛዝ መስመር ላይ ከተገለፀበት አጠቃቀም ላይ የማስጠንቀቂያ ማስጠንቀቂያ ያወጣል.

ሌላው ገፅታ የአጭር ጊዜ ወይንም የአረፍተ ነገሩን ዓረፍተ-ነገሮች የአካል, , , ወይም , ለድርን መጠቀም ነው. የተለመዱ የ AWK አፈፃፀሞች ከተመሳሳይ ዓረፍተ ነገር ጋር ተመሳሳይነት ያለው አግባብ አጠቃቀማቸው አድርገዋል. አስገዳጅ ሁኔታ ከተገለጸ Gawk ይህን አጠቃቀም ይደግፋል.

የጂኤንዩ ቅጥያዎች

ጎልፍ በ POSIX awk በርካታ ቅጥያዎችን አሉት. በዚህ ክፍል ውስጥ ተገልጸዋል. - ተለዋጭ አማራጩን በመጠቀም - እዚህ ላይ የተገለጹት ሁሉም ቅጥያዎች ሊሰናከሉ ይችላሉ.

የ < gawk> የሚከተሉት ገጽታዎች በ POSIX awk ውስጥ አይገኙም.

*

በ-f አማራጭ ውስጥ ለተያዙ ፋይሎች ምንም ዱካ ፍለጋ የለም. ስለዚህ የ AWKPATH አካባቢ ተለዋዋጭ የተለየ አይደለም.

*

\ x escape sequence. ( ከ-loixዕ ጋር የተሰናከለ).

*

fflush () ተግባር. ( ከ-loixዕ ጋር የተሰናከለ).

*

መስመሮችን የመከተል ችሎታ በኋላ ? እና :. ( ከ-loixዕ ጋር የተሰናከለ).

*

በ AWK ፕሮግራሞች ውስጥ የአስፓልት እና ሄክሶዴሲማል ተከታዮች.

*

ARGIND , BINMODE , ERRNO , LINT , RT እና TEXTDOMAIN ተለዋዋጮች የተለየ አይደሉም.

*

IGNORECASE ተለዋዋጭ እና የጎን-ተፅዕኖዎች አይገኙም.

*

FIELDWIDTHS ተለዋዋጭ እና ቋሚ ስፋት መስክ ማለያየት.

*

PROCINFO ድርድር አይገኝም.

*

አርኤስ በመደበኛ አገላለጽ ይጠቀማል.

*

ለ I / O አቅጣጫ ማዘዋወር የሚገኙ ልዩ የፋይል ስሞች አይታወቁም.

*

ተባባሪ ሂደቶችን ለመፍጠር | & ከዋኙ.

*

እንደ ነጠላ ሕብረቁምፊ ነጠላ ቁምፊዎችን እንደ FS እሴት እና እንደ ትንበያ () በሶስት (3) እሴት የመክፈል ችሎታ.

*

አስገዳጅ ሁለተኛ ነጋሪ እሴት ወደ close () ተግባር.

*

የግድግዳሽ () ተግባር ሦስተኛው አማራጭ ነጋሪ እሴት.

*

ከትርፍ እና sprintf () ጋር የትራፊክ ፈጣሪዎች የመጠቀም ችሎታ.

*

የአንድ ድርድር ሙሉውን ይዘቶች ለመሰረዝ የስረዛ ድርድርን አጠቃቀም.

*

የአሁኑ የግቤት ፋይልን ማስኬድ የሚቀጥለው ፋይል መጠቀምን ይከለክላል .

*

() , () , () , Comp () , dcgettext () , complèteub () , lshift () , mktime () , ወይም () , rshift () , strftime () , strtonum () , systime () እና xor () ተግባራት.

*

ሊደረሱ የሚችሉ ሕብረቁምፊዎች.

*

አዳዲስ አብሮ የተሰሩ ተግባራትን በቅጥያው () ተግባር ላይ በማከል.

የ AWK መጽሐፍ የቅብጥ () ተግባር ዋጋውን ይገልፃል. Gawk () () የውጤት ፋይል ወይንም ፓፓ ሲዘጋ ፋይሉን ከ fclose (3) ወይም pclose (3) ይመልሳል . የግቤት ፖፕን ሲዘጋ የሂደቱን የውጫዊ ሁኔታ ይመልሳል. የመመለሻ ዋጋው -1 ነው የተሰየመው ፋይል, ቧንቧ ወይም የጋራ ስራ በአድራሻ አልተከፈተም.

- አስፈሪ አማራጮችን በሚጠቀሙበት ወቅት , fs-F አማራጭ ከሆነ ` s 't' ከሆነ` ቀጥታ FS ወደ የትር ቁምፊ ተዘጋጅቷል. Gawk -F \ t ... የሚለውን በመጫን በቀላሉ «` t, '' እና «ወደ -F አማራጮች» አያልፍም. ይህ በጣም አስቀያሚ ጉዳይ ስለሆነ ይህ ነባሪ ባህሪ አይደለም. ይህ - loopix ከተገለጸም አይሆንም . የእርግጠኛ ጥቅሶችን እንደ የትራክ ቁምፊ ለመስገድ, የነጠላ ነጠላ ዋጋዎችን መጠቀም የተሻለ ነው: gawk - F '\ t' ....

ሌሎች ትዕዛዞችን ይመልከቱ : ይጠብቁ , lp , complete , exec , getfacl , iioctl , uniq , rmmod , pvcreate , rsh , unix2dos , cal , fs , cd , iwpriv , swapon , autofs , ንግግር , motd , ነፃ , lpr , execl , fdisk , , ማን , iwconfig , ifconfig , vgdisplay , open , lsmod , ntohs , mailq , kill , wtmp