ဟာ Linux စစ်ဌာနချုပ် Learn - gawk

အမည်

gawk - ပုံစံစကင်ဖတ်စစ်ဆေးဖို့နဲ့အပြောင်းအလဲနဲ့ဘာသာစကား

အနှစ်ချုပ်

[-] အစီအစဉ်ကို-file ကို -f [POSIX သို့မဟုတ် GNU စတိုင်ရွေးချယ်စရာ] gawk ဖိုင်ကို ...
[-] အစီအစဉ်ကို-စာသားဖိုင် ... [POSIX သို့မဟုတ် GNU စတိုင်ရွေးချယ်စရာ] gawk

pgawk [POSIX သို့မဟုတ် GNU စတိုင်ရွေးချယ်စရာ] -f အစီအစဉ်ကို-file ကို [-] ဖိုင် ...
pgawk [POSIX သို့မဟုတ် GNU စတိုင်ရွေးချယ်စရာ] [-] အစီအစဉ်ကို-စာသားဖိုင် ...

ဖေါ်ပြချက်

Gawk အဆိုပါဖြစ်ပါသည် ကို GNU အဆိုပါ AWK ပရိုဂရမ်းမင်းဘာသာစကား၏စီမံကိန်းရဲ့အကောင်အထည်ဖော်မှု။ ဒါဟာ POSIX 1003,2 စစ်ဌာနချုပ်ဘာသာစကားနှင့်အသုံးအဆောင်များနျ Standard အတွက်ဘာသာစကား၏အဓိပ်ပါယျမှညီ။ အလှည့်၌ဤဗားရှင်း UNIX တွင် awk ၏စနစ် V ကိုဖြန့်ချိ 4 ဗားရှင်းမှာတွေ့ရတဲ့အပိုဆောင်း features တွေနှင့်အတူ Aho, Kernighan နှင့် Weinberger အသုံးပြုပုံအဆိုပါ AWK programming language များတွင်ဖော်ပြချက်အပေါ်အခြေခံသည်။ Gawk လည်းပိုပြီးမကြာသေးမီ Bell Laboratories awk extension များ, နှင့် GNU-တိကျတဲ့ extension များများစွာပေးပါသည်။

Pgawk gawk ၏ကိုယ်ရေးရာဇဝင်ကိုဗားရှင်းဖြစ်ပါတယ်။ ဒါဟာအစီအစဉ်များကိုပိုမိုနှေးကွေးစွာ run နှင့်ပြုမိတဲ့အခါအလိုအလျောက်ဖိုင် awkprof.out အတွက်သေဒဏ်စီရင်ပရိုဖိုင်းကိုထုတ်လုပ် မှလွဲ. gawk မှတိုင်းလမ်းအတွက်တူညီသည်။ အောက်တွင်ဖော်ပြထားသောယင်း --profile option ကိုကြည့်ရှုပါ။

အဆိုပါ command line ကိုကို (-f သို့မဟုတ် --file ရွေးချယ်စရာကနေတဆင့်ထောက်ပံ့မပေးလျှင်), အ AWK အစီအစဉ်ကိုစာသားမကိုယ်တိုင်က gawk ဖို့ရွေးချယ်စရာပါဝင်ပါသည်, နှင့် ARGC အတွက်ရရှိနိုင်စေရန်တန်ဖိုးများနှင့် ARGV Pre-defined AWK variable တွေကို။

option ကို Format ကို

ရွေးချယ်စရာရိုးရာ POSIX တစ်အက္ခရာတစ်လုံးတည်းရွေးချယ်စရာ, သို့မဟုတ် GNU စတိုင်ရှည်လျားရွေးချယ်စရာတစ်ခုခုကိုဖြစ်နိုင်သည် Gawk ။ '-' 'တာရှည်ရွေးချယ်စရာ `` နှင့်အတူစတင်နေချိန်တွင်,' '- POSIX ရွေးချယ်စရာတစ်ခုတည်း `` နှင့်အတူစတင်ပါ။ Long ကရွေးချယ်စရာကို GNU-တိကျတဲ့ features တွေနှစ်ဦးစလုံးနှင့် POSIX-ပြဌာန်း features တွေပေးနေကြပါတယ်။

အဆိုပါ POSIX စံပြီးနောက် -specific ရွေးချယ်စရာ gawk အဆိုပါ -W option ကိုမှအငြင်းပွားမှုများမှတဆင့်ထောက်ပံ့နေကြသည်။ အကွိမျမြားစှာ -W options များအောက်တွင်ဖော်ပြထားသောအသေးစိတ်အဖြစ်တစ်ခုချင်းစီ -W option ကိုတစ်သက်ဆိုင်ရာတာရှည် option ကိုရှိပါတယ်ထောက်ပံ့နိုင်ပါသည်။ ရှည်လျားသောရွေးချယ်စရာဖို့ဆင်ခြေတစ်ခုခုအဘယ်သူမျှမကွားနေရာများနှင့်အတူတစ်ဦး = နိမိတ်လက္ခဏာအားဖြင့် option နဲ့အတူပူးပေါင်းနေကြတယ်, ဒါမှမဟုတ်သူတို့ကလာမယ့် command line ကအငြင်းအခုံအတွက်ထောက်ပံ့ပေးနိုင်ပါသည်။ Long ကရွေးချယ်စရာနေသမျှကာလပတ်လုံးအတိုကောက်ထူးခြားတဲ့ဖြစ်နေဆဲအဖြစ်, အတိုကောက်နိုင်ပါသည်။

options ကို

Gawk အက္ခရာစဉ်စာရင်းအောက်ပါ options များ, လက်ခံခဲ့သည်။

-F fs

အဆိုပါ input field separator (ထို FS ကြိုတင်သတ်မှတ်ထား variable ကို၏တန်ဖိုး) အတွက် --field-separator fs အသုံးပြုမှု fs

-v var = Val

အဆိုပါအစီအစဉ်၏ကွပ်မျက်စတင်မတိုင်မီ --assign var = Val, အ variable ကို var မှတန်ဖိုး Val သတ်မှတ်။ ထိုသို့သော variable ကိုတန်ဖိုးများအနေနဲ့ AWK အစီအစဉ်၏အစအဦးပိတ်ပင်တားဆီးမှုမှရရှိနိုင်ပါသည်။

-f အစီအစဉ်ကို-file ကို

--file အစီအစဉ်ကို-file ကိုဖိုင်ကိုအစီအစဉ်ကို-file ကိုကနေမယ့်အစား၏ပထမဆုံး command line ကအငြင်းအခုံကနေ AWK program ကို source ကိုဖတ်ပါ။ အကွိမျမြားစှာ -f (သို့မဟုတ် --file) ရွေးချယ်စရာကိုအသုံးပြုနိုင်ပါသည်။

NNN -mf

-mr NNN တန်ဖိုးကို NNN မှအမျိုးမျိုးသောမှတ်ဉာဏ်ကန့်သတ်သတ်မှတ်မည်။ အဆိုပါ, f အလံလယ်ကွင်းအများဆုံးအရေအတွက်ကသတ်မှတ်လျက်, r ကိုအလံအများဆုံးစံချိန်အရွယ်အစားသတ်မှတ်။ အဲဒီနှစျခုအလံနှင့် -m option ကို၏ Bell Laboratories သုတေသနဗားရှင်းများမှ UNIX တွင် awkgawk မျှ Pre-defined ကန့်သတ်ထားပြီးကတည်းကသူတို့ဟာ gawk လျစ်လျူရှုနေကြပါတယ်။

-W လိုက်ဖက်တဲ့

ရိုးရာ -W

--compat

compatibility mode မှာ Run --traditional ။ compatibility mode မှာ, gawk မှတူညီပြုမူ UNIX တွင် awk; သည် GNU-တိကျတဲ့ extension များအဘယ်သူအားမျှအသိအမှတ်ပြုကြသည်။ --traditional များအသုံးပြုမှုဒီ option ၏အခြားပုံစံများကိုကျော်ပိုမိုနှစ်သက်သည်။ နောက်ထပ်သတင်းအချက်အလက်များသည်, အောက်ကို GNU EXTENSIONS ကိုကြည့်ပါ။

-W copyleft

-W မူပိုင်

--copyleft

အောင်မြင်စွာစံထုတ်လုပ်မှုနှင့်ထွက်ပေါက်အပေါ်ကို GNU မူပိုင်သတင်းအချက်အလက်သတင်းစကားများ၏အတိုဗားရှင်း Print --copyright

-W အမှိုက်ပုံ-variable တွေကို [= file ကို]

[= file ကို] file မှကမ္ဘာလုံးဆိုင်ရာ variable တွေကိုသူတို့၏အမျိုးအစားများနှင့်နောက်ဆုံးတန်ဖိုးများကိုတစ်ဦးစီထားသောစာရင်း Print-variable တွေကို --dump ။ အဘယ်သူမျှမ file ကိုထောက်ပံ့ပေးလျှင် gawk လက်ရှိ directory ထဲတွင် awkvars.out အမည်ရှိ file ကိုအသုံးပြုသည်။

လူအပေါင်းတို့သည်ကမ္ဘာလုံးဆိုင်ရာ variable တွေကိုစာရင်းတစ်ခုထားရှိခြင်းသည်သင်၏အစီအစဉ်များအတွက်သတ်ပုံအမှားများကိုရှာကောင်းတစ်လမ်းဖြစ်၏။ သငျသညျလုပ်ဆောင်ချက်များကိုတွေအများကြီးနှင့်အတူကြီးမားတဲ့ပရိုဂရမ်တစ်ခုရှိပါကကိုလည်းသင်ဒီ option ကိုအသုံးပြုဖို့မယ်လို့နှင့်သင်သည်သင်၏လုပ်ဆောင်ချက်များကိုအမှတ်တမဲ့သင်သည်ဒေသခံဖြစ်ဖို့ရည်ရွယ်ကြောင်းကမ္ဘာလုံးဆိုင်ရာ variable တွေကိုမသုံးကြဘူးကြောင်းသေချာပါစေချင်ပါတယ်။ (ဤဒါအပေါ်ဈ, ညများကဲ့သို့ရိုးရှင်း variable ကိုနာမည်များနှင့်အတူလုပ်မယ့်အထူးသဖြင့်လွယ်ကူသောအမှားဖြစ်ပြီး, ။ )

-W အကူအညီနဲ့

-W အသုံးပြုမှု

--ကူညီပါ

--usage စံ output ကိုပေါ်ရရှိနိုင်ရွေးချယ်စရာတစ်ခုအတော်လေးတိုတောင်းသောအကျဉ်းချုပ် Print ။ (အကို GNU စံချိန်စံညွှန်း Coding Per ဤရွေးချယ်စရာတစ်ခုချက်ချင်း, အောင်မြင်သောထွက်ပေါက်စေ။ )

-W Plus ကို [= ဆိုးဝါး]

--lint Implementation ကို otherAWK မှသံသယရှိသို့မဟုတ် Non-ခရီးဆောင်ဖြစ်ကြောင်းဆောက်လုပ်ရေးနှင့် ပတ်သက်. သတိပေးချက်များပေး [= ဆိုးဝါး]ဆိုးဝါးတစ်ခု optional ကိုငြင်းခုံနှင့်အတူ, Plus ကိုသတိပေးချက်များဆိုးဝါးအမှားအယွင်းများဖြစ်လာသည်။ ဒါဟာအကြီးအကျယ်ဖြစ်စေခြင်းငှါ, ဒါပေမယ့်သူ့ရဲ့အသုံးပြုမှုကိုဆက်ဆက်သန့်စင် AWK အစီအစဉ်များ၏ဖွံ့ဖြိုးတိုးတက်ရေးကိုအားပေးပါလိမ့်မယ်။

-W Plus ကိုအရွယ်

--lint အရွယ် Unix ၏မူလဗားရှင်း awk မှခရီးဆောင်မစပ်ဆိုင်ကြောင်းကိုဆောက်လုပ်ရေးနှင့် ပတ်သက်. သတိပေးချက်များပေးပါ။

-W gen-po

Scan ကို po---gen နှင့် AWK အစီအစဉ်ကိုခွဲခြားစိတ်ဖြာမှု, နှင့်ပရိုဂရမ်အားလုံးကို localizable ညှို့များအတွက် entries တွေကိုအတူစံ output ကိုအပေါ်တစ်ဦးကို GNU .po format နဲ့ဖိုင် generate ။ အဆိုပါအစီအစဉ်ကိုကိုယ်တိုင်ကကွပ်မျက်ခံရမပေးပါ။ .po ဖိုင်တွေအပေါ်ပိုမိုသောအချက်အလက်များများအတွက်ကို GNU gettext ဖြန့်ဖြူးရှုပါ။

Non-ဒဿမ-data ကို -W

--non-ဒဿမ-data ကို input ကိုဒေတာအတွက် octal ပြီး hexadecimal တန်ဖိုးများကိုအသိအမှတ်ပြုပါ။ ဒီ option ကိုကြီးမြတ်သတိနဲ့သုံးပါ!

-W posix

--posix ဒီအောက်ပါနောက်ထပ်ကန့်သတ်နှင့်အတူလိုက်ဖက်မှု mode ကိုပေါ်လှည့်:

*

\ x ကိုလွတ်မြောက်ရန်ပာအသိအမှတ်ပြုမထားပေ။

*

FS တစ်ခုတည်းအာကာသသတ်မှတ်ထားသည့်အခါလယ်ကိုသီးခြားတည်မှသာလျှင်အာကာသနှင့် tab ကိုလုပ်ရပ်, NEWLINE မ။

*

သငျသညျအပြီးလိုင်းများကိုဆက်လက်မပေးနိုင်သလဲ နှင့်။

*

keyword ကို function ကိုများအတွက်တစ်လုံးကိုအဓိပ္ပာယ်တူ synonym func အသိအမှတ်ပြုမထားပေ။

*

အဆိုပါအော်ပရေတာ ** နှင့် ** = ^ ရာတွင်အသုံးပြုမရနိုငျနှင့် ^ =

*

အဆိုပါ fflush () function ကိုမရရှိနိုင်။

-W ပရိုဖိုင်းကို [= prof_file]

--profile [= prof_file] prof_file မှဒေတာများကိုပေးပို့ပါ။ ကို default awkprof.out ဖြစ်ပါတယ်။ gawk နှင့်အတူပြေးသောအခါ, ပရိုဖိုင်းကိုပရိုဂရမ်များ၏ရုံ `` တော်တော် '' ပုံနှိပ် '' ဗားရှင်းဖြစ်ပါတယ်။ pgawk နှင့်အတူပြေးသောအခါ, ပရိုဖိုင်းကိုတစ်ခုချင်းစီကိုအသုံးပြုသူ-defined function ကိုအဘို့အလက်ဝဲ margin နဲ့ function ကိုဖုန်းခေါ်ဆိုမှုရေတွက်အတွက်အစီအစဉ်တွင်တစ်ဦးချင်းစီထုတ်ပြန်ကြေညာချက်၏ကွပ်မျက်ရေတွက်ပါရှိသည်။

-W Re-ကြားကာလ

--re-ကြားကာလ (အောက်တွင်, regular expression ကိုကြည့်ပါ) ကိုက်ညီပုံမှန်စကားရပ်အတွက်ကြားကာလအသုံးအနှုန်းတွေအသုံးပြုခြင်း Enable လုပ်ထားပါ။ ကြားကာလအသုံးအနှုန်းတွေဟာ AWK ဘာသာစကားမှာအစဉ်အလာကိုမရရှိနိုင်ခဲ့ကြသည်။ အဆိုပါ POSIX စံအချင်းချင်း awk နှင့် egrep တသမတ်တည်းစေ, သူတို့ကိုဆက်ပြောသည်။ သို့သော်၎င်းတို့၏အသုံးပြုမှုဟောင်း AWK အစီအစဉ်များကိုချိုးဖျက်ဖို့ဖွယ်ရှိသည်, ဒါကြောင့်သူတို့ကဒီ option နဲ့အတူမေတ္တာရပ်ခံလျှင်, သို့မဟုတ် --posix သတ်မှတ်ထားသောသောအခါမှသာသူတို့ကိုထောက်ပံ့ gawk

-W အရင်းအမြစ်ပရိုဂရမ်-စာသားကို

AWK program ကို source code ကိုအဖြစ် --source အစီအစဉ်ကို-စာသားကိုအသုံးပြုမှုအစီအစဉ်ကို-စာသားကို။ ဒီ option က command line ပေါ်ထဲသို့ဝင် source code ကိုနှင့်အတူ (ထို -f နှင့် --file options များကနေတစ်ဆင့်အသုံးပြုသော) စာကြည့်တိုက်လုပ်ငန်းဆောင်တာများလွယ်ကူသော intermixing ခွင့်ပြုပါတယ်။ ဒါဟာအဓိကအား shell ကို script များများတွင်အသုံးပြုကြီးမားသော AWK အစီအစဉ်များမှအလတ်စားများအတွက်ရည်ရွယ်ပါသည်။

-W ဗားရှင်း

စံ output ကိုအပေါ် gawk ၏ဤအထူးသဖြင့်မိတ္တူများအတွက် --version ပုံနှိပ်ပါဗားရှင်းသတင်းအချက်အလက်။ ဒါဟာသင့်ရဲ့ system ပေါ်တွင် gawk ၏လက်ရှိမိတ္တူအခမဲ့ဆော့ဝဲ Foundation မှဖြန့်ဝေသမျှရိုသေလေးစားမှုနှင့်အတူ up to date ဖြစ်နေပါလျှင် သိ. များအတွက်အဓိကအားအသုံးဝင်သည်။ bug တွေသတင်းပို့တဲ့အခါမှာဒီစအသုံးဝင်ပါတယ်။ (အကို GNU စံချိန်စံညွှန်း Coding Per ဤရွေးချယ်စရာတစ်ခုချက်ချင်း, အောင်မြင်သောထွက်ပေါက်စေ။ )

- options များ၏အဆုံး signal ။ '' '- ဒါက AWK ပရိုဂရမ်မှထပ်မံငြင်းခုံနေတဲ့ `` နှင့်အတူစတင်ခွင့်ပြုပါရန်အသုံးဝင်သည်။ ဤသည်အများဆုံးကိုအခြား POSIX အစီအစဉ်များကိုအသုံးပြုတဲ့အငြင်းအခုံဆန်းစစ်မှုစည်းဝေးကြီးတစ်ခုကိုနှင့်အတူကိုက်ညီမှုများအတွက်အဓိကအားဖြစ်ပါတယ်။

compatibility mode မှာအခြားရွေးချယ်စရာမမှန်ကန်တဲ့အဖြစ်အလံနေကြတယ်, ဒါပေမယ့်မဟုတ်ရင်လျစ်လျူရှုနေကြပါတယ်။ သာမန်စစ်ဆင်ရေးများတွင်နေသမျှကာလပတ်လုံးအစီအစဉ်ကိုစာသားမထောက်ပံ့ထားပြီးအဖြစ်အမည်မသိရှေးခယျြစရာအပြောင်းအလဲနဲ့များအတွက် ARGV ခင်းကျင်းထဲမှာ AWK အစီအစဉ်အပေါ်လွန်နေကြသည်။ ဒါက `` # မှတဆင့် AWK အစီအစဉ်များကိုအပြေးအဘို့အထူးသဖြင့်အသုံးဝင်ပါ! '' ဟာ executable စကားပြန်ယန္တရား။

AWK နဲ့ PROGRAM executable

တစ်ဦး AWK အစီအစဉ်ကိုပုံစံ-action ကိုထုတ်ပြန်ချက်များနှင့် optional ကို function ကိုအဓိပ္ပာယ်တစ်ခု sequence ကိုပါဝင်ပါသည်။

ပုံစံ {အရေးယူထုတ်ပြန်ချက်များ}

function name (parameter သည်စာရင်း) {ထုတ်ပြန်ချက်များ}

--source ဖို့ငြင်းခုံကနေဒါမှမဟုတ် command line ကိုပေါ်ပထမဦးဆုံး Non-option ကိုငြင်းခုံရာမှသတ်မှတ်ထားသောလျှင်ပထမဦးဆုံးအစီအစဉ်ကို-ဖိုင် (s) ကိုမှအ program ကို source ကိုဖတ် Gawk ။ အဆိုပါ -f နှင့် --source options များက command line ပေါ်အကြိမ်ပေါင်းများစွာကိုအသုံးပြုနိုင်ပါသည်။ လူအပေါင်းတို့သည်အစီအစဉ်ကို-file ကိုကိုယ့်နဲ့ command line ကအရင်းအမြစ်ကျမ်းအတူတကွ concatenated ခဲ့လျှင်အဖြစ် Gawk ပရိုဂရမ်ကိုစာသားမဖတ်။ ဒါဟာသူတို့ကိုအသုံးပြုတစ်ခုချင်းစီကိုသစ်ကို AWK အစီအစဉ်တွင်သူတို့ကိုထည့်သွင်းရန်မလိုဘဲ, AWK လုပ်ဆောင်ချက်များကို၏စာကြည့်တိုက်တည်ဆောက်ခြင်းများအတွက်အသုံးဝင်သည်။ ဒါဟာအစ command line ကိုအစီအစဉ်များနှင့်အတူစာကြည့်တိုက်လုပ်ငန်းဆောင်တာရောမွှေနိုင်စွမ်းပေးပါသည်။

ပတ်ဝန်းကျင် variable ကို AWKPATH အဆိုပါ -f option နဲ့အတူအမည်ရှိအရင်းအမြစ်ဖိုင်များကိုရှာဖွေရာတွင်သည့်အခါသုံးစွဲဖို့ရှာဖွေရေးလမ်းကြောင်းကိုသတ်မှတ်ပါတယ်။ ဒီ variable ကိုမတည်ရှိပါဘူးဆိုရင်, default ဖိုင်လမ်းကြောင်းကိုဖြစ်ပါတယ် ": ။ / usr / local / ရှယ်ယာ / awk" ။ (အမှန်တကယ် directory ကို gawk built နှင့် install လုပ်ထားခဲ့ပုံတို့အပေါ်မှာမူတည်ပြီးကွဲပြားလိမ့်မည်။ ) အကယ်. -f option ကိုအားပေးပြီးမှဖိုင်တစ်ဖိုင် name ကိုအဘယ်သူမျှမလမ်းကြောင်းကိုရှာဖွေရေးဖျော်ဖြေနေသည်တစ်ဦး `` / '' 'ဇာတ်ကောင်, ပါဝင်သည်။

Gawk အောက်ပါနိုင်ရန်အတွက် AWK အစီအစဉ်များကို ပေး. စီရင်။ ပထမဦးစွာ -v option ကိုမှတဆင့်သတ်မှတ်ထားသောအားလုံး variable ကိုတာဝန်ကျဖျော်ဖြေနေကြသည်။ ယင်းနောက် gawk အနေနဲ့ပြည်တွင်းရေးပုံစံသို့အစီအစဉ်ကိုနှစ်စဉ်ပြုစု။ ထို့နောက် gawk (ရှိပါက) ကပိတ်ပင်တားဆီးမှုအစ (s) ကိုအတွက်ကုဒ် ပေး. စီရင်, အဲဒီနောက် ARGV စစ်ခင်းကျင်းအမည်ရှိဖိုင်တိုင်းကိုဖတ်ရှုဖို့ဆက်လက်လုပ်ဆောင်မယ်။ က command line ပေါ်အမည်ရှိမျှဖိုင်တွေရှိပါတယ်ရှိလျှင်, gawk စံ input ကိုဖတ်တယ်။

က command line ပေါ်မှာဖိုင်အမည်ပုံစံ var = Val ရှိပါကက variable ကိုတာဝန်ကျတဲ့နေရာအဖြစ်ကုသနေပါတယ်။ အဆိုပါ variable ကို var တန်ဖိုးကို Val တာဝန်ပေးအပ်ပါလိမ့်မည်။ (မဆိုပြေးပါပြီပိတ်ပင်တားဆီးမှု (s) ကိုအစအပြီးဒီဖြစ်ပျက်။ ) စစ်ဌာနချုပ်လိုင်း variable ကိုတာဝန်ကျတဲ့နေရာသည် dynamically AWK input ကိုလယ်ကွင်းများနှင့်မှတ်တမ်းများသို့ကျိုးသည်ကိုမည်သို့ထိန်းချုပ်အသုံးပြုသည့် variable တွေကိုပေးရန်တန်ဖိုးများကိုတာဝန်ပေးဖို့များအတွက်အများဆုံးအသုံးဝင်သည်။ ဒါဟာအစမျိုးစုံ 'passes တစ်ခုတည်းဒေတာဖိုင်ကျော်လိုအပ်လျှင်ပြည်နယ်ကိုထိန်းချုပ်ဘို့အသုံးဝင်သည်။

ARGV တစ်ဦးအထူးသဖြင့်ဒြပ်စင်၏တန်ဖိုးဗလာဖြစ်နေသည်ဆိုပါက ( ""), ကျော်ကျော်နိုင်ပြီး gawk

အဆိုပါ input ကိုအသီးအသီးစံချိန်ဘို့က AWK အစီအစဉ်တွင်မဆိုပုံစံကိုက်ညီလျှင်ကြည့်ဖို့စမ်းသပ်မှု gawk ။ စံချိန်တင်ကိုက်ညီသောအသီးအသီးပုံစံအဘို့, ဆက်စပ်အရေးယူကွပ်မျက်ခံရခြင်းဖြစ်သည်။ အဆိုပါပုံစံများကိုသူတို့အစီအစဉ်တွင်ဖြစ်ပေါ်သည့်နိုင်ရန်အတွက်စမ်းသပ်ပြီးနေကြသည်။

လူအပေါင်းတို့သည် input ကိုမောဖြစ်ပါတယ်ပြီးနောက်နောက်ဆုံးမှာ, gawk အဆိုပါ END သည်ပိတ်ပင်တားဆီးမှု (s) ကို (ရှိပါက) အတွက်ကုဒ် ပေး. စီရင်။

Variables ကို, မှတ်တမ်းနှင့် Fields

AWK variable တွေကိုပြောင်းလဲနေသောပါ၏ သူတို့ပထမဦးဆုံးအသုံးပြုသောအခါသူတို့ဖြစ်တည်မှုသို့ဝင်ကြလော့။ သူတို့ရဲ့တန်ဖိုးတွေကိုသူတို့အသုံးပြုကြသည်ကိုဘယ်လိုအပျေါမှာမူတည်ပြီး floating-point နံပါတ်များသို့မဟုတ်ညှို့, ဒါမှမဟုတ်နှစ်ဦးစလုံးဖြစ်စေဖြစ်ကြသည်။ AWK လည်းတဦးတည်းရှုထောင် Array ကိုရှိပါတယ်, မျိုးစုံရှုထောင့်နှင့်အတူ Array ကို simulated နိုင်ပါသည်။ အများအပြားက Pre-defined variable တွေကို program တစ်ခုပြေးအဖြစ်သတ်မှတ်ထားကြသည်; ဤအလိုအပျအဖွစျဖျောပွအောက်တွင်အကျဉ်းချုံးပါလိမ့်မည်။

မှတ်တမ်းများ

ပုံမှန်အားဖြင့်မှတ်တမ်းများ NEWLINE ဇာတ်ကောင်ဖြင့်ခွဲခြားထားပါသည်။ သငျသညျမှတ်တမ်းများ Built-in variable ကို RS မှတန်ဖိုးများကိုတာဝန်ပေးဖို့အားဖြင့်ကွဲကွာနေကြပုံကိုထိန်းချုပ်နိုင်ပါတယ်။ RS မဆိုတစ်ခုတည်းဇာတ်ကောင်ဖြစ်တယ်ဆိုရင်, အဲဒီဇာတ်ကောင်မှတ်တမ်းများခွဲခြား။ ဒီလိုမှမဟုတ်ရင် RS ပုံမှန်စကားရပ်ဖြစ်ပါတယ်။ ဒီပုံမှန်အစည်းအဝေးစကားရပ်လိုက်ဖက်မယ့် input ကိုအတွက်စာသားမစံချိန်တင်ခွဲခြား။ သို့သော် compatibility mode မှာ၎င်း၏ string value ကိုသာပထမဦးဆုံးဇာတ်ကောင်မှတ်တမ်းများခွဲထုတ်အသုံးပြုသည်။ RS သည့်တရားမဝင်သော string ကိုသတ်မှတ်ထားလျှင်, မှတ်တမ်းများအလွတ်လိုင်းများအားဖြင့်ကွဲကွာနေကြသည်။ RS သည့်တရားမဝင်သော string ကိုသတ်မှတ်သောအခါ, NEWLINE ဇာတ်ကောင်ကိုအမြဲ FS ရှိစေခြင်းငှါသမျှတန်ဖိုးအပြင်, တစ်ဦးကိုလယ် separator အဖြစ်ဆောင်ရွက်သည်။

လယ်ကွင်းများ

တစ်ခုချင်းစီကို input ကိုစံချိန်ကိုဖတ်နေသည်နှင့်အမျှ gawk လယ်ပြင် separator အဖြစ် FS variable ကို၏တန်ဖိုးသုံးပြီးလယ်ကွင်းများထဲသို့စံချိန်ကိုစူး။ FS တစ်ခုတည်းဇာတ်ကောင်ဖြစ်တယ်ဆိုရင်, လယ်ကွင်းများကြောင့်ဇာတ်ကောင်ဖြင့်ခွဲခြားထားပါသည်။ FS အတွက်တရားမဝင်သော string ကိုဖြစ်ပါတယ်လျှင်, အသီးအသီးတစ်ဦးချင်းစီဇာတ်ကောင်သီးခြားလယ်ပြင်ဖြစ်လာသည်။ ဒီလိုမှမဟုတ်ရင် FS အပြည့်အဝပုံမှန်စကားရပ်ဖြစ်လိမ့်မည်ဟုမျှော်လင့်နေသည်။ FS တစ်ခုတည်းအာကာသကြောင်းအထူးကိစ္စတွင်ခုနှစ်, လယ်ကွင်းနေရာများနှင့် / သို့မဟုတ် tabs များနှင့် / သို့မဟုတ် NEWLINE ၏ပြေးအားဖြင့်ကွဲကွာနေကြသည်။ (သို့သော်အောက်တွင်ဖော်ပြထားသော, --posix ၏ဆွေးနွေးမှုကိုကြည့်ပါ) ။ မှတ်ချက်: IGNORECASE ၏တန်ဖိုး (အောက်တွင်ကြည့်ပါ) လည်း FS ပုံမှန်စကားရပ်အခါလယ်ကွင်းခွဲနေကြသည်ကိုဘယ်လိုအကျိုးသက်ရောက်နှင့် RS ပုံမှန်စကားရပ်အခါဘယ်လိုမှတ်တမ်းများကွဲကွာနေကြသည်။

အဆိုပါ FIELDWIDTHS variable ကိုနံပါတ်တစ်အာကာသကွဲကွာစာရင်းသတ်မှတ်ထားလျှင်, အသီးအသီးသောလယ် width ကို fixed ကြလိမ့်မည်ဟုမျှော်လင့်များနှင့်သတ်မှတ်ထားသော width သုံးပြီးစံချိန်တက်ပြိုကွဲ gawk ဖြစ်ပါတယ်။ FS ၏တန်ဖိုးကိုလျစ်လျူရှုနေပါတယ်။ FS အသစ်တစ်ခုတန်ဖိုးကိုသတ်မှတ်ခြင်း FIELDWIDTHS ၏အသုံးပြုမှုကိုပြောင်းလဲသတ်မှတ်လိုက်သည်နှင့်ကို default အပြုအမူ restores ။

အဆိုပါ input ကိုစံချိန်အတွက်တစ်ဦးချင်းစီကိုလယ်ဒါအပေါ်အနေအထား, $ 1, $ 2 ကိုးကားနှင့်နိုင်ပါသည်။ $ 0 င်တရှောက်လုံးကိုစံချိန်ဖြစ်ပါတယ်။ fields ရုံကလွဲပြီးအားဖြင့်ရည်ညွှန်းခြင်းကိုမလိုအပ်ပါ:

ဎ = 5
ပုံနှိပ် $ ဎ

အဆိုပါ input ကိုစံချိန်အတွက်ပဉ္စမလယ်ပြင်နေရိုက်ထုတ်။

အဆိုပါ variable ကိုအဲန်အက်ဖ်သည့် input ကိုစံချိန်အတွက်လယ်ကွင်းများ၏စုစုပေါင်းအရေအတွက်သတ်မှတ်ထားခြင်းဖြစ်သည်။

Non-တည်ရှိလယ်ကွင်း ($ အဲန်အက်ဖ်ပြီးနောက်ဆိုလိုသည်မှာလယ်ကွင်း) ကိုကိုးကားသည့်တရားမဝင်သော-string ကိုထုတ်လုပ်ပေးသည်။ သို့သော် (ဥပမာ $ (အဲန်အက်ဖ် + 2) = 5) non-တည်ရှိလယ်တာဝန်ပေးဖို့, အဲန်အက်ဖ်၏တန်ဖိုးကိုတိုးပွါးသူတို့ရဲ့တန်ဖိုးကိုအဖြစ်တရားမဝင်သော string ကိုအတူမဆိုကွားလယ်ကွင်းဖန်တီးနှင့် $ 0 ၏တန်ဖိုး recomputed ခံရဖို့ကိုဖြစ်ပေါ်စေသည်အတူ လယ်ကွင်း OFS ၏တန်ဖိုးအားဖြင့်ကွဲကွာခံရ။ အနုတ်လက္ခဏာနံပါတ်လယ်ကွင်းမှကိုးကားဖြစ်တဲ့ Fatal error ဖြစ်ပေါ်စေနိုင်ပါတယ်။ လျှော့အဲန်အက်ဖ်သစ်ကိုတနျဖိုးအတိတ်လယ်ကွင်းများ၏တန်ဖိုးများဆုံးရှုံးခဲ့ရခံရဖို့ကိုဖြစ်ပေါ်စေသည်, နှင့် $ 0 ၏တန်ဖိုးလယ်ကွင်း OFS ၏တန်ဖိုးအားဖြင့်ကွဲကွာခံရခြင်းနှင့်အတူ recomputed ခံရဖို့။

တစ်ခုရှိပြီးသားလယ်တန်ဖိုးသတ်မှတ်ခြင်း $ 0 င်ကိုးကားသောအခါတပြင်လုံးကိုစံချိန်ပြန်လည်တည်ဆောက်ရမည်ကိုဖြစ်ပေါ်စေသည်။ အလားတူပင် $ 0 င်တစ်ဦးရဲ့တန်ဖိုးကိုတာဝန်ပေးဖို့စံချိန်တင်လယ်ကွင်းများအတွက်သစ်ကိုတန်ဖိုးများအတွက် resplit ခံရဖို့ကိုဖြစ်ပေါ်စေသည်။

built-in Variables ကို

Gawk 's built-in variable တွေကိုနေသောခေါင်းစဉ်:

ARGC

command line ကိုငြင်းခုံအရေအတွက် (gawk ဖို့ရွေးချယ်စရာသို့မဟုတ် program ကို source ကိုများမပါဝင်ပါ) ။

ARGIND

လုပ်ငန်းများ၌ခံရလက်ရှိဖိုင် ARGV အတွက်အညွှန်းကိန်း။

ARGV

command line ကိုငြင်းခုံ၏ array ။ ဒေတာအတွက်သုံးဖိုင်များထိန်းချုပ်နိုင်သည် Dynamic ARGV ရဲ့ contents ပြောင်းလဲနေတဲ့ 1. - အခင်းကျင်းက 0 ကနေ ARGC မှရည်ညွှန်းသည်။

BINMODE

Non-POSIX စနစ်များတွင်, ရှိသမျှဖိုင် I / O ဘို့ `` binary '' mode ကိုအသုံးပြုမှုကိုသတ်မှတ်ပါတယ်။ 1, 2, 3 ၏ numeric တန်ဖိုးများ, binary I / O ကိုအသုံးပြုသင့်ပါတယ်, အသီးသီးကြောင်း input ကိုဖိုင်များ, output ကိုဖိုင်များ, သို့မဟုတ်အားလုံးကိုဖိုင်တွေကိုသတ်မှတ်။ string "r" ၏တန်ဖိုးများကို, ဒါမှမဟုတ် binary I / O ကိုအသုံးပြုသင့်ပါတယ်, အသီးသီးကြောင်း input ကိုဖိုင်များ, သို့မဟုတ် output ကိုဖိုင်တွေသတ်မှတ် "w""rw" သို့မဟုတ် "wr" ၏ string တန်ဖိုးများအားလုံးဖိုင်တွေ binary I / O ကိုအသုံးပြုဖို့သင့်ကြောင်းသတ်မှတ်။ အခြားမည်သည့် string value ကို "rw" အဖြစ်ကုသပေမယ့်သတိပေးတဲ့ message ကိုထုတ်ပေးသည်။

CONVFMT

ပုံမှန်အားဖြင့်နံပါတ်များ, "% .6g" အတွက်ပြောင်းလဲခြင်း format နဲ့။

ပတ်ဝန်းကျင်

လက်ရှိပတ်ဝန်းကျင်၏တန်ဖိုးများင်တစ်ဦးစစ်ခင်းကျင်း။ အဆိုပါစစ်ခင်းကျင်း (ဥပမာ, ပတ်ဝန်းကျင် [ "မူလစာမျက်နှာ"] / home / Arnold ဖြစ်လိမ့်မယ်) တစ်ဦးချင်းစီဒြပ်စင်ကြောင့် variable ကို၏တန်ဖိုးဖြစ်ခြင်း, ပတ်ဝန်းကျင် variable တွေကိုအားဖြင့်ရည်ညွှန်းသည်။ ဒီစစ်ခင်းကျင်းပြောင်းခြင်း redirection သို့မဟုတ်စနစ် () function ကိုမှတဆင့် spawn gawk ရသောအစီအစဉ်များကိုမြင်ပတ်ဝန်းကျင်ကိုမထိခိုက်ဘူး။

ERRNO

စနစ်တစ်ခုအမှား getline တစ်ဖတ်ကာလအတွင်း getline များအတွက် redirection လုပ်နေတာ, ဒါမှမဟုတ်တစ်ဦးနီးကပ်နေစဉ်အတွင်း () ဖြစ်စေဖြစ်ပေါ်လျှင်, ERRNO အမှားဖော်ပြတဲ့ string ကိုဆံ့မည်ဖြစ်သည်။ တန်ဖိုး Non-အင်္ဂလိပ်ဒေသမူများအတွက်ဘာသာပြန်ချက်မှဘာသာရပ်ဖြစ်ပါသည်။

FIELDWIDTHS

တစ်ဦးကအဖြူ-space ကို fieldwidths စာရင်းကွဲကွာ။ ဘယ်အချိန်မှာအစု, gawk အစားလယ်ပြင် separator အဖြစ် FS variable ကို၏တန်ဖိုးကို အသုံးပြု. ၏, fixed အကျယ်၏လယ်ကွင်းထဲသို့ input ကို parses ။

ဖိုင်နာမည်

လက်ရှိ input ကိုဖိုင်၏အမည်။ အဘယ်သူမျှမဖိုင်တွေက command line ပေါ်တွင်သတ်မှတ်ထားသောနေတယ်ဆိုရင်, ၏တန်ဖိုး FILENAME ကို '' '- `` ဖြစ်ပါတယ်။ သို့သော် FILENAME ကို (getline အားဖြင့်သတ်မှတ်ထားမဟုတ်လျှင်) အစအဦးပိတ်ပင်တားဆီးမှုအတွင်းပိုင်း undefined ဖြစ်ပါတယ်။

FNR

လက်ရှိ input ကိုဖိုင်ထဲမှာ input ကိုစံချိန်တင်အရေအတွက်သည်။

FS

အဆိုပါ input field separator, default အနေဖြင့်တစ်ဦးအာကာသ။ အထက်, Fields ကိုကြည့်ပါ။

IGNORECASE

အားလုံးပုံမှန်စကားရပ်နှင့် string ကိုစစ်ဆင်ရေး၏ဖြစ်ရပ်-sensitivity ကိုထိန်းချုပ်သည်။ IGNORECASE non-သုညတန်ဖိုးကိုရှိပါတယ်လျှင်, string ကိုနှိုင်းယှဉ်ခြင်းနှင့်ပုံစံစည်းမျဉ်းစည်းကမ်းတွေထဲမှာကိုက်ညီ, FS နှင့်အတူလယ်ကိုပိုင်းခြား, RS နှင့်အတူခွဲထုတ်စံချိန်, ~ နှင့်! ~, နှင့် gensub နှင့်အတူကိုက်ညီပုံမှန်စကားရပ် (), gsub (), အညွှန်းကိန်း () , ပွဲစဉ် (), အုပ်စုခွဲ () နှင့်ခွဲ () built-in function တွေကိုပုံမှန်စကားရပ်စစ်ဆင်ရေးလုပ်နေတာတဲ့အခါမှာအားလုံးအမှုလျစ်လျူရှု။ မှတ်ချက်: Array subscription ထိခိုက်မ asort () function ကိုတစ်ခုဖြစ်သည်မပေးပါ။

လျှင်ထို့ကြောင့် IGNORECASE သုညနဲ့ညီမျှသည်မဟုတ် / AB / "AB", "Ab" နှင့် "AB" ကြိုး "AB" ၏အားလုံးကိုက်ညီ။ အားလုံး AWK variable တွေကိုနှင့်အတူအမျှ IGNORECASE ၏ကနဦးတန်ဖိုးကိုသုညဖြစ်တယ်, ဒါအားလုံးပုံမှန်စကားရပ်နှင့် string ကိုစစ်ဆင်ရေးပုံမှန်အားဖြင့်အမှု-အထိခိုက်မခံဖြစ်ကြ၏။ Unix ကအောက်, အပြည့်အဝ က ISO ကိစ္စတွင်လျစ်လျူရှုသည့်အခါ 8859-1 လက်တင်-1 တဲ့ character set ကိုအသုံးပြုသည်။

Plus ကို

တစ်ဦး AWK အစီအစဉ်ကိုအတွင်းကနေ --lint option ကို၏ပြောင်းလဲနေသောထိန်းချုပ်မှုပေးပါသည်။ ဘယ်အချိန်မှာစစ်မှန်တဲ့, ထုတ် Plus ကိုသတိပေးချက်များ gawk ။ ဘယ်အချိန်မှာမမှန်သော, အဲဒါမဟုတ်ပါဘူး။ "ဆိုးဝါး" ဟုအဆိုပါ string value ကိုတာဝန်ပေးသည့်အခါ Plus ကိုသတိပေးချက်များအတိအကျဆိုးဝါး = --lint လိုပဲဆိုးဝါးအမှားအယွင်းများဖြစ်လာသည်။ အခြားမည်သည့်စစ်မှန်သောတန်ဖိုးကိုပဲသတိပေးချက်များနေရိုက်ထုတ်။

အဲန်အက်ဖ်

လက်ရှိ input ကိုစံချိန်အတွက်လယ်အရေအတွက်။

ရော်ဘာ

ဒါဝေးကိုတှေ့မွငျ input ကိုမှတ်တမ်းများအရေအတွက်စုစုပေါင်း။

OFMT

ပုံမှန်အားဖြင့်ဂဏန်းများအတွက် output ကို format နဲ့, "% .6g"

OFS

က output ကိုလယ် separator, default အနေဖြင့်တစ်ဦးအာကာသ။

ORS

default အနေနဲ့တစ် NEWLINE အားဖြင့် output ကိုစံချိန် separator ။

PROCINFO

ဒီစစ်ခင်းကျင်း၏ element တွေကို run နေ AWK အစီအစဉ်ကိုအကြောင်းသတင်းအချက်အလက်မှဝင်ရောက်ခွင့်ကိုပေး။ အချို့သောစနစ်များတွင်, လုပ်ငန်းစဉ်ရှိကြောင်းဖြည့်စွက်အုပ်စုများ၏အရေအတွက်သည်ဖြစ်သောအချို့သောဎ, အဲဒီမှာကနေတဆင့်စစ်ခင်းကျင်း "GROUP1" တွင်ဒြပ်စင်ဖြစ် "အုပ်စုတစ်စု n" ဖြစ်နိုင်သည်။ ဤအ element တွေကိုအဘို့စမ်းသပ်ဖို့အတွက်အော်ပရေတာကိုသုံးပါ။ အောက်ပါဒြပ်စင်များရရှိနိုင်ဖြစ်အာမခံချက်ရှိပါသည်:

PROCINFO [ "egid"]

အဆိုပါ၏တန်ဖိုး getegid (2) system ကိုဖုန်းခေါ်ဆိုမှု။

PROCINFO [ "euid"]

အဆိုပါ၏တန်ဖိုး geteuid (2) system ကိုဖုန်းခေါ်ဆိုမှု။

PROCINFO [ "FS"]

"FS" FIELDWIDTHS နှင့်အတူလယ်ကိုပိုင်းခြားအကျိုးသက်ရောက်မှုအတွက်ပါလျှင် FS နှင့်အတူလယ်ကိုပိုင်းခြားအကျိုးသက်ရောက်မှု၌တည်ရှိ၏သို့မဟုတ် "FIELDWIDTHS" ဆိုရင်။

PROCINFO [ "gid"]

အဆိုပါ getgid (2) system ကိုဖုန်းခေါ်ဆိုမှု၏တန်ဖိုး။

PROCINFO [ "pgrpid"]

လက်ရှိလုပ်ငန်းစဉ်၏ဖြစ်စဉ်ကိုအုပျစု ID ကို။

PROCINFO [ "PID"]

လက်ရှိလုပ်ငန်းစဉ်၏လုပ်ငန်းစဉ် ID ကို။

PROCINFO [ "ppid"]

လက်ရှိလုပ်ငန်းစဉ်၏မိဘလုပ်ငန်းစဉ်အား ID ကို။

PROCINFO [ "uid"]

အဆိုပါ getuid (2) system ကိုဖုန်းခေါ်ဆိုမှု၏တန်ဖိုး။

RS

default အနေနဲ့တစ် NEWLINE အားဖြင့် input ကိုစံချိန် separator ။

RT ကို

အဆိုပါစံချိန် Terminator ။ Gawk ဇာတ်ကောင်သို့မဟုတ် RS နေဖြင့်သတ်မှတ်ထားသောပုံမှန်စကားရပ်လိုက်ဖက်သော input ကိုကစာသားမှ RT ကိုသတ်မှတ်။

RSTART

ပွဲစဉ် (နေဖြင့်လိုက်ဖက်ပထမဦးဆုံးဇာတ်ကောင်များ၏အညွှန်းကိန်း); 0 င်မယှဉ်ပါလျှင်။ (ဤဇာတ်ကောင်ညွှန်းကိန်းမှာ start ကိုဆိုလို။ )

RLENGTH

ပွဲစဉ် (နေဖြင့်လိုက်ဖက် string ကို၏အရှည်); -1 မယှဉ်လျှင်။

SUBSEP

ဇာတ်ကောင် "034 \" ပုံမှန်အားဖြင့်, ခင်းကျင်းဒြပ်စင်အတွက်မျိုးစုံ subscription ခွဲခြားလေ့ရှိတယ်။

TEXTDOMAIN

အဆိုပါ AWK အစီအစဉ်၏စာသားဒိုမိန်း; Program ကိုဖွင့်ညှို့များအတွက်ဒေသခံဘာသာကိုရှာဖွေလေ့ရှိတယ်။

အခင်းအကျင်း

Array ကိုစတုရန်းကွင်းခတ် ([နဲ့]) အကြားတစ်ဦးစကားရပ်နှင့်အတူ subscripted နေကြသည်။ ဟူသောအသုံးအနှုနျးတခုစကားရပ်စာရင်းသည်ဆိုပါက (expr, expr ... ) ထို့နောက်ခင်းကျင်း subscript အဆိုပါ SUBSEP variable ကို၏တန်ဖိုးအားဖြင့်ကွဲကွာတစ်ခုချင်းစီစကားရပ်၏ (string ကို) တန်ဖိုးကို၏ concatenation ပါဝင်သည်ဟုတစ်ဦး string ကိုဖြစ်ပါတယ်။ ဤသည်စက်ရုံများပြား dimensioned Array ကိုတူအောင်ဖန်တီးရန်အသုံးပြုသည်။ ဥပမာ:

ကိုယ့် = "တစ်ဦးက"; ည = "B က"; ဋ = "C က"
x က [ဈ, ည, ဋ] = "ဟဲလို, ကမ္ဘာ့ \ n"

string ကို "တစ်ဦးက \ 034B \ 034C" ကရည်ညွှန်းသောခင်းကျင်း x ရဲ့ဒြပ်စင်ဖို့ string ကို "ဟဲလို, ကမ္ဘာ့ \ n" သတ်မှတ်ပေးထားတဲ့။ AWK အားလုံး Array ကိုဆိုလိုသည်မှာ string ကိုတန်ဖိုးများများကရည်ညွှန်း, အသင်းအဖွဲ့များနေကြသည်။

အထူးအော်ပရေတာတစ်ခုခင်းကျင်းနေတဲ့အထူးသဖြင့်တန်ဖိုးပါဝင်သည်ဟုတစ်ခုအညွှန်းကိန်းရှိပါတယ်လျှင်ကြည့်ဖို့တစ်ဦးလျှင်သို့မဟုတ်စဉ်ထုတ်ပြန်ကြေညာချက်များတွင်အသုံးပြုနိုင်ပါသည်။

လျှင် (Val ခင်းကျင်း၌) ပုံနှိပ်ခင်းကျင်း [Val]

အဆိုပါစစ်ခင်းကျင်းမျိုးစုံ subscription ရှိပါတယ်ရှိလျှင်, စစ်ခင်းကျင်း (ဈ, ည) ကိုအသုံးပြုပါ။

ဆောက်လုပ်ရေးအတွက်လည်းတစ်ခုခင်းကျင်းသားအပေါငျး element တွေကိုကျော် iterate မှကွင်းဆက်တစ်ခုအတွက်အသုံးပြုနိုင်ပါသည်။

တစ်ဦး element ကဖျက်ရန်ကြေညာချက်ကို အသုံးပြု. တစ်ခုခင်းကျင်းထဲကနေဖျက်ပစ်နိုင်ပါသည်။ ပယ်ဖျက်ရန်ကြေညာချက်လည်းပဲစာရင်းသွင်းခြင်းမရှိဘဲစစ်ခင်းကျင်းနာမကိုအမှီသတ်မှတ်ခြင်းအားဖြင့်တစ်ဦးခင်းကျင်း၏အကြောင်းအရာတစ်ခုလုံးကိုဖျက်ပစ်ရန်အသုံးပြုနိုင်ပါသည်။

variable type နှင့်ကူးပြောင်းခြင်း

variable တွေကိုနှင့်လယ်ယာ (floating အချက်) နံပါတ်များ, သို့မဟုတ်ညှို့, ဒါမှမဟုတ်နှစ်ဦးစလုံးဖြစ်နိုင်ပါသည်။ တစ်ဦး variable ကို၏တန်ဖိုးဘတ်ဖြစ်ပါတယ်ဘယ်လိုယင်း၏အခြေအနေတွင်အပေါ်သို့မူတည်ပါတယ်။ တစ်ဂဏန်းစကားရပ်များတွင်အသုံးပြုလျှင်တစ်ဦး string ကိုအဖြစ်ကုသပါလိမ့်မည်တစ်ဦး string ကိုအဖြစ်အသုံးပြုမယ်ဆိုရင်ကနံပါတ်အဖြစ်ကုသပါလိမ့်မည်။

နံပါတ်အဖြစ်ကုသခံရဖို့တစ် variable ကိုအတင်းစေရန်, အဲဒါကို 0 င် add; တစ်ဦး string ကိုအဖြစ်ကုသခံရဖို့ကအတင်းငှါ, null string ကိုအတူက concatenate ။

တစ်ဦး string ကိုနံပါတ်အဖြစ်ပြောင်းလဲရမည်ဖြစ်သည်အခါ, ပြောင်းလဲခြင်း strtod (3) ကို အသုံးပြု. ကုန်ပြီ။ တစ်ဦးကအရေအတွက်အငြင်းအခုံအဖြစ် variable ကို၏ဂဏန်းတန်ဖိုး, sprintf များအတွက် format နဲ့ string ကို (3) အဖြစ် CONVFMT ၏တန်ဖိုးကို အသုံးပြု. တစ်ဦး string ကိုကူးပြောင်းသည်။ သို့သော် AWK အားလုံးကိုနံပါတ်များကို floating-point နေကြသည်သော်လည်းအရေးပါသောတန်ဖိုးများကိုအစဉ်အမြဲကိန်းအဖြစ်ပြောင်းလဲနေကြသည်။ ထို့ကြောင့်ပေးထား

CONVFMT = "% 2.2f" ဟု = 12 ခတစ်ဦး "" =

အဆိုပါ variable ကို b ", 12" တစ်ခုက string value ကိုရှိပြီးမဟုတ် "12,00"

အောက်မှာဖေါ်ပြတဲ့အတိုင်း Gawk နှိုင်းယှဉ်လုပ်ဆောင်: နှစ်ခု variable တွေကိုဂဏန်းတွေဟာဆိုရင်သူတို့ကအရအေတှကျအားဖွငျ့နှိုင်းယှဉ်နေကြသည်။ တဦးတည်းရဲ့တန်ဖိုးကိုဂဏန်းဖြစ်ပြီးအခြားတစ်ဦး `` ဂဏန်း string ကိုသော string value ကိုရှိပါက, '' ထို့နောက်နှိုင်းယှဉ်အရအေတှကျအားဖွငျ့ကိုလည်းပြုမိနေကြသည်။ ဒီလိုမှမဟုတ်ရင်, ထိုဂဏန်းတန်ဖိုးကိုတစ်ဦး string ကိုကူးပြောင်းသည်နှင့်တစ်ဦး string ကိုနှိုင်းယှဉ်ဖျော်ဖြေနေသည်။ နှစ်ဦးကိုညှို့သင်တန်း၏, ညှို့အဖြစ်နှိုင်းယှဉ်နေကြသည်။ အဆိုပါ POSIX စံပင် string ကိုရုံကလွဲပြီးရန်, နေရာတိုင်း '' `` ဂဏန်း string ကို '' ၏အယူအဆသက်ဆိုင်ကြောင်းသတိပြုပါ။ သို့သော်ဤရှင်းလင်းစွာသည်မှားနေပြီး, gawk ဤသို့ပြုမထားဘူး။ (ကံကောင်းထောက်မစွာ, ဒီစံရဲ့နောက်ဗားရှင်း fixed ဖြစ်ပါတယ်။ )

ထိုကဲ့သို့သော "57" အဖြစ်ကြောင့် string ကိုရုံကလွဲပြီး, မှတ်ချက်, ဂဏန်းညှို့မဟုတ်, သူတို့က string ကိုရုံကလွဲပြီးဖြစ်ကြသည်။ '' `ဂဏန်း string ကို ''` ၏စိတ်ကူးမှသာဂဏန်းညှို့ဖြစ်ကြောင်းလယ်ကွင်း, getline input ကို, FILENAME ကို, ARGV ဒြပ်စင်ပတ်ဝန်းကျင်ဒြပ်စင်များနှင့်အုပ်စုခွဲ (အသုံးပြုနေသူများကဖန်တီးတစ်ခုခင်းကျင်း၏ဒြပ်စင်) နှင့်သက်ဆိုင်သည်။ အခြေခံအယူအဆအသုံးပြုသူ input ကိုနှင့်ဂဏန်းကြည့်သာအသုံးပြုသူ input ကို, ထိုလမ်းကုသသင့်ကြောင်းဖြစ်ပါသည်။

Uninitialized variable တွေကိုပုဂဏန်းတန်ဖိုးကို 0 င်များနှင့် string value ကို "" ကို (null, ဒါမှမဟုတ်အချည်းနှီးသော, string ကို) ရှိသည်။

Octal နှင့် Hexadecimal constant

gawk ၏ဗားရှင်း 3.1 နှင့်အတူစတင်ခြင်း, သင်သည်သင်၏ AWK program ကို source code ကိုအတွက်ကို C-စတိုင် octal ပြီး hexadecimal ရုံကလွဲပြီးမသုံးနိုင်ပါသည်။ ဥပမာ, octal တန်ဖိုးကို 011 9 decimal ညီမျှသည်နှင့် hexadecimal တန်ဖိုး 0x11 17 decimal ညီမျှသည်။

string constant

: ။ AWK အတွက် string ရုံကလွဲပြီး C. ၌ရှိသကဲ့သို့အဲဒီဖြစ်ကြသည်ညှို့အတွင်းမှာပဲအချို့လွတ်မြောက်ပာအသိအမှတ်ပြုကြသည်ကို double quote တွေ ( ") အကြားပူးတွဲဇာတ်ကောင်များ၏ပာများမှာ

\\

တစ်ဦးကပကတိဘယ်ဘက်မျဉ်းစောင်း။

\ တစ်ဦး

အဆိုပါ `` သတိပေးချက် '' ဇာတ်ကောင်; ပုံမှန်အားဖြင့် ASCII bel ဇာတ်ကောင်။

\ ခ

နောက်ပြန်ခလုတ်ကို။

\ f

ပုံစံ-feed ကို။

\ n

NEWLINE ။

\ r

ရထားပြန်လာ။

\ t ကို

အလျားလိုက် tab ကို။

\ း

ဒေါင်လိုက် tab ကို။

\ x ကို hex ဂဏန်း

အဆိုပါ \ x ကိုအောက်ပါ hexadecimal ဂဏန်း၏ string ကိုကိုယ်စားပြုဇာတ်ကောင်။ ANSIC ၌ရှိသကဲ့သို့, အားလုံးအောက်ပါ hexadecimal ဂဏန်းဟာထွက်ပေါက် sequence ကို၏အစိတ်အပိုင်းတစ်ခုဟုယူဆနေကြသည်။ (ဤအင်္ဂါရပ်ကိုအကော်မတီမှဘာသာစကားဒီဇိုင်းအကြောင်းကိုတစ်ခုခုပြောပြသင့်ပါတယ်။ ) ဥပမာ, "\ x1B" ဟုအဆိုပါ ASCIIESC (ထွက်ပေါက်) ဇာတ်ကောင်ဖြစ်ပါတယ်။

\ ddd

ထို 1- ကကိုယ်စားပြုဇာတ်ကောင်, 2-, ဒါမှမဟုတ် octal ဂဏန်း၏ 3-ဂဏန်း sequence ကို။ ဥပမာ "\ 033" ကို ASCII ESC (ထွက်ပေါက်) ဇာတ်ကောင်ဖြစ်ပါတယ်။

\ c ကို

ပကတိဇာတ်ကောင်က c

အဆိုပါထွက်ပေါက်ပာအဆက်မပြတ် regular expressions ကိုအတွင်းပိုင်းကိုလည်းအသုံးပြုခဲ့စေခြင်းငှါ (ဥပမာ, / [\ t ကို \ f \ n \ n r \ v] / ကြားနေရာလွတ်ဇာတ်ကောင်နှင့်လိုက်ဖက်) ။

ပုံမှန်စကားရပ်ရုံကလွဲပြီးတွင်အသုံးပြုသည့်အခါ compatibility mode မှာ, octal ပြီး hexadecimal ထွက်ပေါက်ပာကကိုယ်စားပြုဇာတ်ကောင်စာသားကုသနေကြသည်။ ထို့ကြောင့် / တစ် \ 52b / / တစ် \ * b / ညီမျှသည်။

patterns နဲ့ Actions

AWK တစ်လိုင်း-oriented language တစ်ခုဖြစ်ပါတယ်။ အဆိုပါပုံစံကိုပထမဆုံးကြွလာ, အဲဒီနောက် action ကို။ လှုပ်ရှားမှုထုတ်ပြန်ချက်များအတွက် {နဲ့} ပူးတွဲနေကြသည်။ နှစ်ဦးစလုံးမပုံစံပျောက်ဆုံးစေခြင်းငှါ, ဒါမှမဟုတ် action ကိုပျောက်ဆုံးပေမယ့်, သင်တန်းစေခြင်းငှါလည်းကောင်း။ ပုံစံပျောက်ဆုံးလျှင်, action ကို input ကိုအမှုအမျိုးမျိုးရှိသမျှတစ်ခုတည်းစံချိန်အဘို့အကွပ်မျက်ခံရခြင်းဖြစ်သည်။ တစ်ဦးကပျောက်ဆုံးအရေးယူညီမျှသည်

{ပုံနှိပ်}

သောတစျခုလုံးကိုစံချိန်တင်နေရိုက်ထုတ်။

မှတ်ချက်များ `` # '' ဇာတ်ကောင်နဲ့စတင်လျက်, လိုင်း၏အဆုံးတိုင်အောင်အဆက်လက်။ blank လိုင်းများထုတ်ပြန်ချက်များခွဲခြားဖို့အသုံးပြုနိုင်ပါသည်။ ပုံမှန်အားဖြင့်ကြေညာချက်တစ် NEWLINE နှင့်အတူအဆုံးသတ်သို့သော်ဤ {တစ်ဦး ``, '' အတွက်အဆုံးသတ်လိုင်းများများအတွက်အမှုဖြစ်သည်မဟုတ်လော :, &&, ဒါမှမဟုတ် ||အတွက်အဆုံးသတ်လိုင်းများပြုပါသို့မဟုတ်အခြားလည်းသူတို့ရဲ့ထုတ်ပြန်ချက်များအလိုအလြောကျအောက်ပါလိုင်းပေါ်တွင်ဆက်လက်ပါပြီ။ အဆိုပါ NEWLINE လျစ်လျူရှုခံရလတံ့သောအမှုရှိအခြားကိစ္စများတွင်တစ်လိုင်း, တစ်ဦး '' နှင့်အတူကအဆုံးသတ်အားဖြင့်ဆက်လက်နိုင်ပါသည်။

အကွိမျမြားစှာထုတ်ပြန်ချက်များတစ်ဦး `` သူတို့နှင့်အတူခွဲထုတ်ခြင်းဖြင့်တဦးတည်းလိုင်းပေါ်တွင်တင်စေခြင်းငှါ, '' ။ ဒါကပုံစံ-action ကို pair တစုံကို (ခါတိုင်းလိုကိစ္စတွင်) ၏အရေးယူဆောင်ရွက်မှုအစိတ်အပိုင်းတစ်ရပ်အတွင်းတွင်, နှင့်ပုံစံ-action ကိုထုတ်ပြန်ချက်များသူတို့ကိုယ်သူတို့ဖို့ထုတ်ပြန်ချက်များနှစ်ဦးစလုံးနှင့်သက်ဆိုင်သည်။

ပုံစံများ

AWK ပုံစံများအောက်ပါတို့မှတဦးတည်းဖြစ်နိုင်သည်:

END သည် / ပုံမှန်စကားရပ် / relational စကားရပ်ပုံစံ && ပုံစံပုံစံအစ || ပုံစံပုံစံ? ပုံစံ: ပုံစံ (ပုံစံ)! ပုံစံ pattern1, pattern2

စနဲ့အဆုံးဟာ input ကိုဆန့်ကျင်စမ်းသပ်ပြီးမရှိကြသည့်ပုံစံများနှစ်ခုအထူးအမျိုးမျိုးရှိပါတယ်။ လူအပေါင်းတို့၏အရေးယူဆောင်ရွက်မှုအစိတ်အပိုင်းပုံစံများအပေါငျးတို့သထုတ်ပြန်ချက်များတစ်ခုတည်းအစပိတ်ပင်တားဆီးမှု၌ရေးထားလျက်ရှိ၏ခဲ့လျှင်အဖြစ်ပေါင်းစည်းကြသည်စတင်ဖို့။ အဆိုပါ input ကိုမဖတ်ခင်သူတို့ကကွပ်မျက်ခံရနေကြသည်။ အလားတူပင်အပေါငျးတို့သ END သည်လုပ်ကွက်ပေါင်းစည်းနှင့်အပေါငျးတို့သ input ကိုကုန်သောအခါ (သို့မဟုတ်တစ်ခုထွက်ပေါက်ကြေညာချက်ကွပ်မျက်ခံရသောအခါ) ကွပ်မျက်ခံရနေကြသည်။ စနဲ့အဆုံးပုံစံများပုံစံအသုံးအနှုန်းတွေအခြားပုံစံများနှင့်အတူပေါင်းစပ်လို့မရပါ။ စနဲ့အဆုံးပုံစံများအရေးယူအစိတ်အပိုင်းများပျောက်ဆုံးခဲ့ကြလို့မရပါဘူး။

/ ပုံမှန်စကားရပ် / ပုံစံများအဘို့, ဆက်စပ်ကြေညာချက်ပုံမှန်စကားရပ်ကိုက်ညီသောအသီးအသီး input ကိုစံချိန်တင်အဘို့အကွပ်မျက်ခံရခြင်းဖြစ်သည်။ ပုံမှန်အသုံးအနှုန်းတွေထဲမှာသူများကဲ့သို့တူညီသောများမှာ egrep (1), နှင့်ကိုအောက်တွင်အကျဉ်းချုံးထားပါသည်။

တစ်ဦးက relational စကားရပ်လုပ်ရပ်များအပေါ်အပိုင်းအတွက်အောက်တွင်ဖော်ပြထားသောသတ်မှတ်ထားတဲ့အော်ပရေတာမဆိုသုံးနိုင်ပါသည်။ ဤရွေ့ကားယေဘုယျအားဖြင့်အချို့လယ်ကွက်အချို့ regular expressions ကိုကိုက်ညီခြင်းရှိမရှိစမ်းသပ်ရန်။

အဆိုပါ &&, || နှင့်! သူတို့ကအစက C ထဲမှာရှိသကဲ့သို့, Short-circuit ကိုအကဲဖြတ်ပြုနှင့်ပိုပြီးစရိုက်ပုံစံအသုံးအနှုန်းတွေပေါင်းစပ်ပြီးအတွက်အသုံးပြုနေကြသည် C. ၌ရှိသကဲ့သို့အော်ပရေတာ, အသီးသီးယုတ္တိနှင့်, ယုတ္တိ OR နှင့်ယုတ္တိမဟုတ်ပါဖြစ်ကြသည်။ အများဆုံးဘာသာစကားများ၌ရှိသကဲ့သို့, ကွင်းအကဲဖြတ်၏အမိန့်ကိုပြောင်းလဲဖို့အသုံးပြုနိုင်ပါသည်။

အဆိုပါ: ပထမဦးဆုံးပုံစံမှန်ခဲ့လျှင်အော်ပရေတာ C. အတွက်တူညီတဲ့အော်ပရေတာနှင့်တူ၏ထို့နောက်စမ်းသပ်အတှကျအသုံးပွုပုံမဟုတ်ရင်ကတတိယဖြစ်တယ်, ဒုတိယပုံစံဖြစ်ပါတယ်။ တစ်ဦးတည်းသာဒုတိယနှင့်တတိယပုံစံများအကဲဖြတ်သည်။

အဆိုပါ pattern1 တစ်ခုထုတ်ဖော် pattern2 ပုံစံတစ်ဦးကိုခေါ်တာဖြစ်ပါတယ် အကွာအဝေး ပုံစံ။ ဒါဟာအားလုံး input ကိုမှတ်တမ်းများ pattern1 ကိုက်ညီမယ့်စံချိန်နှင့်အတူစတင်များနှင့် pattern2, အားလုံးပါဝင်နိုင်ကိုက်ညီမယ့်စံချိန်မှီတိုငျအောငျဆက်လက်တိုက်စစ်ပါတယ်။ ဒါဟာပုံစံစကားရပ်၏အခြားမည်သည့်မျိုးနှင့်အတူပေါင်းစပ်ပါဘူး။

ပုံမှန်ဖော်ပြချက်

ပုံမှန်အသုံးအနှုန်းတွေ egrep မှာတွေ့ရတဲ့တိုးချဲ့မျိုးရှိပါတယ်။ အောက်မှာဖေါ်ပြတဲ့အတိုင်းသူတို့ကဇာတ်ကောင်များရေးစပ်နေကြသည်:

က c

non-metacharacter က c တိုက်စစ်ပါတယ်။

\ c ကို

ပကတိဇာတ်ကောင်က c တိုက်စစ်ပါတယ်။

NEWLINE အပါအဝင်မည်သည့်ဇာတ်ကောင်နှင့်လိုက်ဖက်။

^

တစ်ဦး string ကို၏အစတိုက်စစ်ပါတယ်။

$

တစ်ဦး string ကို၏အဆုံးတိုက်စစ်ပါတယ်။

[abc ... ]

ဇာတ်ကောင်စာရင်း ... ဇာတ်ကောင် abc မဆိုကိုက်ညီ။

[^ abc ... ]

ဇာတ်ကောင်စာရင်း negated ... abc မှလွဲ. မည်သည့်ဇာတ်ကောင်နှင့်လိုက်ဖက်။

R1 | R2

Alternative: ပွဲ R1 သို့မဟုတ် R2 ဖြစ်စေ။

r1r2

concatenation: R1 ကိုက်ညီမှု, ပြီးတော့ R2

r +

တဦးတည်းသို့မဟုတ်ထိုထက်ပို r 's ကိုတိုက်စစ်ပါတယ်။

r *

သုညသို့မဟုတ်ထိုထက်ပို r 's ကိုတိုက်စစ်ပါတယ်။

r?

မီးခြစ်သုညသို့မဟုတ်တဦးတည်း r 's ကို။

(r)

အာဆီယံ: ပွဲ r

r ကို {n}

r ကို {n,}

မသန်စွမ်းပဲအထဲမှာ r ကို {n, m} တစ်ခုသို့မဟုတ်နှစ်ခုနံပါတ်များတစ်ခုကြားကာလစကားရပ်ဖျောညှနျး။ တဦးတည်းအရေအတွက်မသန်စွမ်းပဲရှိလျှင်, ရှေ့အပုံမှန်အစည်းအဝေးစကားရပ် r n ကြိမ်ထပ်ခါတလဲလဲဖြစ်ပါတယ်။ တစ်ကော်မာများကကွဲကွာနှစ်ခုနံပါတ်များရှိပါတယ်ရှိလျှင်, r ကိုမီတာကြိမ်မှဎထပ်ခါတလဲလဲဖြစ်ပါတယ်။ တစ်ကော်မာအားဖြင့်နောက်တော်သို့လိုက်ဦးတည်းအရေအတွက်ကလည်းမရှိလျှင်, r ကိုအနည်းဆုံး n ကြိမ်မှာထပ်ခါတလဲလဲဖြစ်ပါတယ်။

တစ်ခုခုကို --posix သို့မဟုတ် --re-ကြားကာလက command line ပေါ်တွင်သတ်မှတ်ထားသောလျှင် interval အသုံးအနှုန်းတွေသာရရှိနိုင်ပါသည်။

\ y က

အစအဦးတစ်ခုသို့မဟုတ်စကားလုံးများ၏အဆုံးဖြစ်စေမှာအချည်းနှီးသော string ကိုတိုက်စစ်ပါတယ်။

\ B ကို

စကားလုံးတစ်လုံးအတွင်းအချည်းနှီးသော string ကိုတိုက်စစ်ပါတယ်။

\ <

စကားလုံးတစ်လုံး၏အစမှာအချည်းနှီးသော string ကိုတိုက်စစ်ပါတယ်။

\>

စကားလုံးတစ်လုံး၏အဆုံးမှာအချည်းနှီးသော string ကိုတိုက်စစ်ပါတယ်။

\ w

မည်သည့်စကားလုံး-မဲဆန္ဒနယ်အက္ခရာ (စာဂဏန်း, ဒါမှမဟုတ် underscore) တိုက်စစ်ပါတယ်။

\ W က

စကားလုံး-မဲဆန္ဒနယ်မဟုတျကွောငျးဆိုဇာတ်ကောင်နှင့်လိုက်ဖက်။

\ `

တစ်ဦးကြားခံ (string ကို) ၏အစအဦးမှာအချည်းနှီးသော string ကိုတိုက်စစ်ပါတယ်။

\ '

တစ်ဦးကြားခံ၏အဆုံးမှာအချည်းနှီးသော string ကိုတိုက်စစ်ပါတယ်။

string ကိုရုံကလွဲပြီးအတွက်ခိုင်လုံသောဖြစ်ကြောင်းအဆိုပါထွက်ပေါက်ပာ (အောက်တွင်ကြည့်ပါ) regular expressions ကိုလည်းတရားဝင်ဖြစ်ကြသည်။

ဇာတ်ကောင်အတန်းဟာ POSIX စံအတွက်မိတ်ဆက်တဲ့ feature အသစ်ဖြစ်ကြ၏။ တစ်ဦးကဇာတ်ကောင်လူတန်းစားတိကျတဲ့ attribute ကိုရှိသည်သောဇာတ်ကောင်များ၏စာရင်းများကိုဖော်ပြဘို့အထူးသင်္ကေတဖြစ်တယ်, ဒါပေမဲ့ရှိရာအမှန်တကယ်ဇာတ်ကောင်သူတို့ကိုယ်သူတို့တိုင်းပြည်နှင့် / သို့မဟုတ်တဲ့ character set ဟုသတ်မှတ်ဇာတ်ကောင်ကနေတိုင်းပြည်ကနေအမျိုးမျိုးကွဲပြားနိုင်သည်။ ဥပမာအားဖြင့်, တစ်ဦးအက်ခရာစဉျအကျင့်စာရိတ္တသည်အဘယ်အရာ၏အယူအဆအမေရိကန်နှင့်ပြင်သစ်တွင်ကွဲပြားနေသည်။

တစ်ဦးကဇာတ်ကောင်လူတန်းစားတစ်ဦးဇာတ်ကောင်စာရင်း၏ကွင်းခတ်အတွင်း၌ပုံမှန်စကားရပ်များတွင်သာတရားဝင်သည်။ [:, အတန်းယင်းသည်သော့ချက်စာလုံးနှင့်:] ဇာတ်ကောင်အတန်းရှိရေး။ အဆိုပါ POSIX စံနေဖြင့်သတ်မှတ်ဇာတ်ကောင်အတန်းနေသောခေါင်းစဉ်:

[: alnum:]

အက္ခရာနံပါတ်ပါတဲ့ဇာတ်ကောင်။

[: alpha:]

အက်ခရာစဉျအက္ခရာများ။

[: ကွက်လပ်:]

အာကာသသို့မဟုတ် tab ကိုဇာတ်ကောင်။

[: cntrl:]

ထိန်းချုပ်ရေးအက္ခရာများ။

[: ဂဏန်း:]

numeric အက္ခရာများ။

[: ဂရပ်:]

print ထုတ်လို့ရတဲ့နှင့်မြင်နိုင်နှစ်ဦးစလုံးဖြစ်ကြောင်း characters ။ (တစ်ဦးတစ်ဦးနှစ်ဦးစလုံးသည်ကာလတွင်တစ်ဦးကအာကာသ, print ထုတ်လို့ရတဲ့ပေမယ့်မမြင်နိုင်ဖြစ်ပါသည်။ )

[: အောက်ပိုင်း:]

lower-ကိစ္စတွင်အက်ခရာစဉျအက္ခရာများ။

[: ပုံနှိပ်:]

ပရင့်ထုတ်ရန်အဇာတ်ကောင် (ဇာတ်ကောင်ကိုထိန်းချုပ်မထားနိုင်သောအက္ခရာများ။ )

[: punct:]

ပုဒ်ဖြတ်ပုဒ်ရပ်ဇာတ်ကောင် (အက္ခရာ, ဂဏန်း, ထိန်းချုပ်မှုဇာတ်ကောင်, ဒါမှမဟုတ်အာကာသအက္ခရာများမဟုတ်ပါဖြစ်ကြောင်းဇာတ်ကောင်) ။

[: အာကာသ:]

(ထိုကဲ့သို့သောအာကာသ, tab ကိုနှင့် formfeed အဖြစ်အနည်းငယ်အမည်ကိုမှ) အာကာသအက္ခရာများ။

[: အထက်ပိုင်း:]

upper-ကိစ္စတွင်အက်ခရာစဉျအက္ခရာများ။

[: xdigit:]

hexadecimal ဂဏန်းဖြစ်ကြောင်း characters ။

ဥပမာ, POSIX စံမှီ, အက္ခရာနံပါတ်ပါတဲ့ဇာတ်ကောင်ကိုက်ညီဖို့, သင် / ရေးသားဖို့ခဲ့ကြလိမ့်မယ် [A-ဇ-z0-9] / ။ သင့်ရဲ့တဲ့ character set ကအခြားအက်ခရာစဉျဇာတ်ကောင်ခဲ့လျှင်ဤသူတို့ကိုကိုက်ညီမဟုတ်ဘူး, သင်၏တဲ့ character set ကွဲပြားခြားနား ASCII ထံမှ collated လျှင်, ဒီပင် ASCII အက္ခရာနံပါတ်ပါတဲ့ဇာတ်ကောင်မကိုက်ညီပေလိမ့်မည်။ အဆိုပါ POSIX ဇာတ်ကောင်အတန်းနှင့်အတူ, သငျသညျ / ရေးနိုငျ [[: alnum:]] /, ဤသည်သင်၏တဲ့ character set အတွက်အက်ခရာစဉျနှင့်ဂဏန်းဇာတ်ကောင်နှင့်လိုက်ဖက်။

နှစျဦးအပိုဆောင်းအထူးပာဇာတ်ကောင်စာရင်းထဲမှာပေါ်လာနိုင်ပါတယ်။ ဤရွေ့ကားတစ်ဦးထက်ပိုဇာတ်ကောင်အဖြစ် collating, ဒါမှမဟုတ် sorting များအတွက်ညီမျှဖြစ်ကြောင်းတော်တော်များများဇာတ်ကောင်, ရည်ရွယ်ချက်များနှင့်အတူကိုယ်စားပြုဖြစ်ကြောင်းတစ်ခုတည်းသင်္ကေတ (ဒြပ်စင် collating ခေါ်) ရှိနိုငျသော Non-ASCII ဇာတ်ကောင်အစုံ, သက်ဆိုင်ပါသည်။ (ပြင်သစ်ဥပမာ, တစ်လွင်ပြင် `` အီး '' နှင့်သင်္ချိုင်းတွင်း-accented e` ညီမျှကြသည်။ )

Collating သင်္ကေတ

တစ်ဦးကစုစည်းစီစဉ်သင်္ကေတ [အတွက်ပူးတွဲ multi-ဇာတ်ကောင် collating ဒြပ်စင်ဖြစ်သည်။ နှင့်။ ] ။ ဥပမာအားဖြင့်, ch တစ်ဦးစုစည်းစီစဉ်ဒြပ်စင်တစ်ခုဖြစ်သည်လျှင်, [[.ch ။ ]] ဒီစုစည်းစီစဉ်ဒြပ်စင်ကိုက်ညီသောပုံမှန်စကားရပ်ဖြစ်ပါသည်, [ch] စဉ်က c သို့မဟုတ်ဇဖြစ်စေကိုက်ညီသောပုံမှန်စကားရပ်ဖြစ်ပါတယ်။

ညီမျှ Classes ရဲ့

တစ်ခုနှင့်ညီမျှလူတန်းစားညီမျှဖြစ်ကြောင်းဇာတ်ကောင်များ၏စာရင်းကိုများအတွက်ဒေသ-သတ်သတ်မှတ်မှတ်နာမည်ဖြစ်ပါတယ်။ နာမ၌ပူးတွဲ [= နှင့် =] ဖြစ်ပါတယ်။ ဥပမာအားဖြင့်, နာမတော်ကိုအမှီ ပြု. အီး `` အီး, '' `` အီး ',' အပေါငျးတို့သကိုယ်စားပြုဖို့အသုံးပြုစေခြင်းငှါ 'နှင့် `` e` ။ ' 'ဤကိစ္စတွင်ခုနှစ်, [[= အီး =]] တစ်ပုံမှန်စကားရပ်ဖြစ်ပါသည် , အီးမဆိုကိုက်ညီအီး 'သို့မဟုတ် e`

ဤအင်္ဂါရပ်ကို non-အင်္ဂလိပ်စကားပြောဒေသမူများအတွက်အလွန်တန်ဖိုးရှိသောဖြစ်ကြသည်။ သာ POSIX ဇာတ်ကောင်အတန်းကိုအသိအမှတ်မပြုလက်ရှိကိုက်ညီပုံမှန်စကားရပ်များအတွက်အသုံးပြုမှု gawk သောစာကြည့်တိုက်လုပ်ငန်းဆောင်တာ; သူတို့သင်္ကေတသို့မဟုတ်ညီမျှအတန်း collating အသိအမှတ်မပြုကြဘူး။

အဆိုပါ \ y က, \ B, \ <\> w \, \ W က, \ `နှင့် \ '' အော်ပရေတာ gawk မှတိကျတဲ့ပါ၏ သူတို့ကကို GNU ပုံမှန်စကားရပ်စာကြည့်တိုက်များအတွက်အဆောက်အဦးများပေါ်တွင် အခြေခံ. extension များဖြစ်ကြသည်။

အမျိုးမျိုးသော command line ကိုရှေးခယျြစရာ gawk regular expressions ကိုအတွက်ဇာတ်ကောင်အနက်ဖွင့်ပုံကိုထိန်းချုပ်ထားသည်။

အဘယ်သူမျှမ options များ

ကို default အမှု၌, အပေါငျးတို့သ POSIX regular expressions ကို၏အဆောက်အဦများနှင့်အထက်တွင်ဖော်ပြခဲ့ theGNU ပုံမှန်စကားရပ်အော်ပရေတာများကို gawk ။ သို့သော်ကြားကာလအသုံးအနှုန်းတွေထောက်ခံကြသည်မဟုတ်။

--posix

သာ POSIX regular expressions ကိုထောက်ခံကြသည်, ထိုကို GNU အော်ပရေတာအထူးမဟုတ်ပါဘူး။ (ဥပမာ, ပကတိ w ကိုက်ညီ w \) ။ ကြားကာလအသုံးအနှုန်းတွေခွင့်ပြုခဲ့ရသည်။

--traditional

ရိုးရာ Unix regular expressions ကိုလိုက်ဖက်နေကြသည် awk ။ အဆိုပါကို GNU အော်ပရေတာအထူးမဟုတ်ကြားကာလအသုံးအနှုန်းတွေကိုမရရှိနိုင်ဖြစ်ကြသည်ကို၎င်း, ထို POSIX ဇာတ်ကောင်အတန်း ([[: alnum:]] ဒါတွင်) ဖြစ်ကြသည်မဟုတ်။ octal ပြီး hexadecimal ထွက်ပေါက်ပာနေဖြင့်ဖော်ပြထား characters သူတို့ပုံမှန်စကားရပ် metacharacters ကိုယ်စားပြုရင်တောင်စာသားကုသနေကြသည်။

--re-ကြားကာလ

--traditional ထောက်ပံ့ပေးလျက်ရှိသည်လျှင်ပင်, regular expressions ကိုအတွက်ကြားကာလအသုံးအနှုန်းတွေ Allow ။

လုပ်ဆောင်ချက်များ

လှုပ်ရှားမှုထုတ်ပြန်ချက်များ, မသန်စွမ်းပဲအတွက်ပူးတွဲ {နဲ့} နေကြသည်။ လှုပ်ရှားမှုထုတ်ပြန်ချက်များ, ပုံမှန်အတိုင်းတာဝန်ကျတဲ့နေရာထားရှိရေးခြွင်းချက်နှင့်အများဆုံးဘာသာစကားများကိုတွေ့ထုတ်ပြန်ချက်များထပ်ခါတလဲလဲ။ ရရှိနိုင်အဆိုပါအော်ပရေတာ, ထိန်းချုပ်မှုထုတ်ပြန်ချက်များနှင့် Input / output ကိုထုတ်ပြန်ချက်များ C. ရှိသူတို့ပြီးနောက် patterned နေကြတယ်

အော်ပရေတာ

AWK အတွက်အော်ပရေတာ, စားပေးမှုလျော့ကျလာ၏နိုင်ရန်အတွက်ဖြစ်ကြ၏

( ... )

အာဆီယံ

$

field ကိုကိုးကား။

++ -

increment နှင့်လျှော့, ရှေ့ဆက်နှင့် postfix နှစ်ဦးစလုံး။

^

အဆ (ထိုတာဝနျကိုအော်ပရေတာများအတွက် ** လည်းအသုံးပြုစေခြင်းငှါ, ** =)

+! -

Unary ပေါင်း, unary အနုတ်နှင့်ယုတ္တိ negation ။

* /%

မြှောက်, ကွဲပြားခြင်းနှင့်ကိန်းပကတိတန်ဖိုး။

+ -

ထို့အပြင်နှင့်အနုတ်။

အာကာသ

string concatenation ။

<>

<=> =

! = == အဆိုပါပုံမှန်အစည်းအဝေး relational အော်ပရေတာ။

~! ~

ပုံမှန်စကားရပ်ပွဲ, negated ပွဲ။ မှတ်ချက်: တစ် ~ ၏လက်ဝဲဘက်ခြမ်းအပေါ်တစ်ဦးစဉ်ဆက်မပြတ်ပုံမှန်စကားရပ် (/ foo /) ကိုသုံးပါသို့မဟုတ် ~ မနေပါနဲ့။ သာညာဘက်အခြမ်းအပေါ်တဦးတည်းကိုအသုံးပြုပါ။ အဆိုပါစကားရပ် / foo / ~ EXP ကဲ့သို့တူညီသောအဓိပ္ပာယ်ကိုရှိပါတယ် (($ 0 င် ~ / foo /) ~ EXP)ဤသည်ကိုရည်ရွယ်ခဲ့ရာများသောအားဖြင့်တော့မဟုတ်ပါဘူး။

တွင်

array အဖွဲ့ဝင်အဖြစ်။

&&

ယုတ္တိဗေဒနှင့်။

||

logical OR ။

?:

အဆိုပါကို C ခြွင်းချက်စကားရပ်။ ဒါကပုံစံ expr1 ရှိသနည်း expr2: expr3expr1 မှန်လျှင်, စကားရပ်၏တန်ဖိုး expr2 ဖြစ်ပါသည်, မဟုတ်ရင်က expr3 ဖြစ်ပါတယ်။ တစ်ဦးတည်းသာ expr2 နှင့် expr3 ၏အကဲဖြတ်သည်။

= + = - =

* = / =% = ^ = တာဝန်။ နှစ်ဦးစလုံးအကြွင်းမဲ့အာဏာတာဝန်ကျတဲ့နေရာ (var = value ကို) နှင့်အော်ပရေတာ-တာဝန်ကျတဲ့ (အခြားပုံစံများ) ထောက်ခံနေကြသည်။

ထိန်းချုပ်ရေးဖော်ပြချက်

အောက်မှာဖေါ်ပြတဲ့အတိုင်းထိန်းချုပ်မှုထုတ်ပြန်ချက်များနေသောခေါင်းစဉ်:

လျှင် (ခွအေနအေ) ကကြေညာချက် [အခြားကြေညာချက်] နေစဉ် (ခွအေနအေ) ထုတ်ပြန်ချက်အဘို့ (ခွအေနအေ) အနေဖြင့်ကြေငြာချက်ပြုပါ (expr1; expr2; expr3) (var ခင်းကျင်း၌) ထုတ်ပြန်ချက်ချိုးဘို့ကြေညာချက်ခင်းကျင်း [အညွှန်းကိန်း] ခင်းကျင်းထွက်ပေါက် delete [စကားရပ်] {delete ကိုဆက်လက် ထုတ်ပြန်ချက်များ}

I / O ဖော်ပြချက်

အောက်မှာဖေါ်ပြတဲ့အတိုင်း input ကို / output ကိုထုတ်ပြန်ချက်များနေသောခေါင်းစဉ်:

အနီးကပ် ([ဘယ်လို] file)

အနီးကပ်ဖိုင်, ပိုက်သို့မဟုတ် Co-ဖြစ်စဉ်ကို။ တစ်ဦးကိုပူးတွဲလုပ်ငန်းစဉ်သည်တစ်ဦး Two-လမ်းပိုက်၏တဦးတည်းအဆုံးပိတ်တဲ့အခါမှာသာအသုံးပြုသင့်ဘယ်လိုရွေးချယ်နိုင်။ ဒါဟာဖြစ်စေ "ကို" သို့မဟုတ် "ကနေ" တစ်ဦး string ကိုတနျဖိုးရှိရပါမည်။

getline

လာမယ့် input ကိုစံချိန်ကနေ $ 0 င် Set; အဲန်အက်ဖ်, ရော်ဘာ, FNR ထားကြ၏။

getline <ဖိုင်

ဖိုင်လာမယ့်စံချိန်ကနေ $ 0 င် Set; အဲန်အက်ဖ်ထားကြ၏။

getline var

လာမယ့် input ကိုစံချိန်ကနေ var Set; ရော်ဘာ, FNR ထားကြ၏။

getline var <ဖိုင်

ဖိုင်လာမယ့်စံချိန်ကနေ var သတ်မှတ်မည်။

command ကို | getline [var]

တစ်ခုခုအဖြစ်အထက် $ 0 င်သို့မဟုတ် var, သို့ output ကိုများအတွင်းပို့ command ကို run လိုက်ပါ။

command ကို | & getline [var]

က output ဖြစ်စေအဖြစ်အထက် $ 0 င်သို့မဟုတ် var, သို့ Co-ဖြစ်စဉ်ကိုပိုက်အဖြစ် command ကို run လိုက်ပါ။ co-ဖြစ်စဉ်များတစ် gawk extension ကိုဖြစ်ကြသည်။

နောက်တစ်ခု

လက်ရှိ input ကိုစံချိန် processing ရပ်တန့်။ နောက်တစ်နေ့ input ကိုစံချိန်ကိုဖတ်ရှုခြင်းနှင့်အပြောင်းအလဲနဲ့အဆိုပါ AWK အစီအစဉ်တွင်ပထမဦးဆုံးပုံစံနှင့်အတူကျော်စတင်သည်သည်။ အဆိုပါ input ကိုအချက်အလက်များ၏အဆုံးသို့ရောက်ရှိလျှင်, END သည်ပိတ်ပင်တားဆီးမှု (s) ကိုမဆိုမိလျှင်, ကွပ်မျက်ခံရနေကြသည်။

nextfile

လက်ရှိ input ကိုဖိုင်ကို processing ရပ်တန့်။ ကိုဖတ်ပြီးနောက်တစ်နေ့ input ကိုစံချိန်လာမယ့် input ကိုဖိုင်ကနေလာပါတယ်။ FILENAME ကိုနှင့် ARGIND updated နေကြတယ်, FNR 1 ပြန်ညှိမှုဖြစ်ပြီး, အပြောင်းအလဲနဲ့အဆိုပါ AWK အစီအစဉ်တွင်ပထမဦးဆုံးပုံစံနှင့်အတူကျော်စတင်သည်။ အဆိုပါ input ကိုအချက်အလက်များ၏အဆုံးသို့ရောက်ရှိလျှင်, END သည်ပိတ်ပင်တားဆီးမှု (s) ကိုမဆိုမိလျှင်, ကွပ်မျက်ခံရနေကြသည်။

ပုံနှိပ်

လက်ရှိစံချိန်အားပရင့်ထုတ်ရန်။ အဆိုပါ output ကိုမှတျတမျး ORS variable ကို၏တန်ဖိုးနှင့်အတူရပ်စဲသည်။

ပုံနှိပ် expr-စာရင်း

Print အသုံးအနှုန်းတွေ။ တစ်ခုချင်းစီကိုစကားရပ် OFS variable ကို၏တန်ဖိုးအားဖြင့်ကွဲကွာနေသည်။ အဆိုပါ output ကိုမှတျတမျး ORS variable ကို၏တန်ဖိုးနှင့်အတူရပ်စဲသည်။

ပုံနှိပ် expr-စာရင်း> ဖိုင်

ဖိုင်ပေါ်တွင်အသုံးအနှုန်းတွေပရင့်ထုတ်ရန်။ တစ်ခုချင်းစီကိုစကားရပ် OFS variable ကို၏တန်ဖိုးအားဖြင့်ကွဲကွာနေသည်။ အဆိုပါ output ကိုမှတျတမျး ORS variable ကို၏တန်ဖိုးနှင့်အတူရပ်စဲသည်။

printf fmt, expr-စာရင်း

format များနှင့်ပုံနှိပ်။

printf fmt, expr-စာရင်း> ဖိုင်

ဖိုင်ပေါ်တွင် format များနှင့်ပုံနှိပ်။

စနစ် (cmd-Line)

အမိန့် cmd-line ကို execute ကို၎င်း, ထွက်ပေါက် status ကိုပြန်သွားပါ။ (ဤသည် non-POSIX စနစ်များပေါ်တွင်ရရှိနိုင်ပါသည်မည်မဟုတ်ပါ။ )

fflush ([ဖိုင်])

ဖွင့် output ကိုဖိုင်သို့မဟုတ်ပိုက်ဖိုင်နဲ့ဆက်စပ်ကိုမဆိုကြားခံရှင်းလင်းရန်။ ဖိုင်ပျောက်ဆုံးဖြစ်ပါတယ်လျှင်, စံ output ကိုသှေးရောငျလှမျးဖြစ်ပါတယ်။ ဖိုင်တရားမဝင်သော string ကိုဖြစ်တယ်ဆိုရင်, ထို့နောက်အားလုံးပွင့်လင်း output ကိုဖိုင်တွေနဲ့ပိုက်ကိုသူတို့ကြားခံမှုများကိုထည့်သွင်းတွက်ချက်ရှိသည်။

အပိုဆောင်း output ကိုပြန်လည်လမ်းညွှန်မှုပုံနှိပ်ခြင်းနှင့် printf အဘို့အခွင့်ပြုခဲ့ရသည်။

ပုံနှိပ် ... >> file ကို

ဖိုင်ကိုမှ output ကို appends ။

ပုံနှိပ် ... | အမိန့်

တစ်ပိုက်ပေါ်တွင်ရေးသားခဲ့သည်။

ပုံနှိပ် ... | & command ကို

တစ်ဦးကိုပူးတွဲလုပ်ငန်းစဉ်ဒေတာပို့လွှတ်သည်။

အဆိုပါ getline command ကိုဖိုင်အဆုံးပေါ်ပြန် 0 င်များနှင့် -1 မှားယွင်းမှုတစ်ခုပေါ်မှာ။ မှားယွင်းမှုတစ်ခုပေါ်၌ ERRNO ပြဿနာကိုဖော်ပြတဲ့ string ကိုပါဝင်သည်။

မှတ်ချက်: loop တစ်ခုအတွင်း getline ဖို့, ဒါမှမဟုတ်ပုံနှိပ်သို့မဟုတ် printf ကနေပိုက်သို့မဟုတ် Co-process ကို အသုံးပြု. ဆိုရင် command ကိုသစ်သာဓကကိုဖန်တီးရန် () အနီးကပ်အသုံးပြုရမည်။ သူတို့ EOF ပြန်လာသည့်အခါ AWK မဟုတ်အလိုအလျှောက်အနီးကပ်ပိုက်သို့မဟုတ် Co-ဖြစ်စဉ်များပါဘူး။

အဆိုပါ printf ထုတ်ပြန်ချက်

အဆိုပါ printf ကြေညာချက်နှင့် sprintf () function ကို (အောက်တွင်ကြည့်ပါ) ၏ AWK ဗားရှင်းကိုအောက်ပါပြောင်းလဲခြင်းသတ်မှတ်ချက်ကို formats ကိုလက်မခံ:

% c ကို

တစ်ခုက ASCII ဇာတ်ကောင်။ % က c များအတွက်အသုံးပြုသောအငြင်းအခုံဂဏန်းသည်ဆိုပါက, တကဇာတ်ကောင်အဖြစ်ကုသနဲ့ပုံနှိပ်ဖြစ်ပါတယ်။ ဒီလိုမှမဟုတ်ရင်, ထိုငြင်းခုံတစ်ဦး string ကိုဖြစ်ယူဆနေသည်နှင့် string ကို၏တစ်ခုတည်းသောပထမဦးဆုံးဇာတ်ကောင်ပုံနှိပ်ဖြစ်ပါတယ်။

% ဃ%

တစ်ဦးကဒဿမအရေအတွက်က (ထိုကိန်းအစိတ်အပိုင်းတစ်ခု) ။

% က e% E ကို

ပုံစံ၏တစ်ဦးက floating အမှတ်အရေအတွက်သည် [-] d.dddddde [+ -] ddအဆိုပါ% E ကို format နဲ့ E ကိုအစားအီးအသုံးပြုသည်။

%, f

ပုံစံ၏တစ်ဦးက floating အမှတ်အရေအတွက်သည် [-] ddd.dddddd

% ဂရမ်%, G

နှိမ်နင်း nonsignificant သုညနှင့်အတူတိုတောင်းဖြစ်ပါတယ်ကိုမဆို% အီးသို့မဟုတ်%, f ပြောင်းလဲခြင်း, ကိုသုံးပါ။ အဆိုပါ%, G format နဲ့အစား% အီးဒ% E ကိုအသုံးပြုသည်။

% ဏ

တစ်ခုကလက်မှတ်မထိုး octal နံပါတ် (သည်လည်းတစ်ခုကိန်း) ။

% ဦးတစ်ဦးလက်မှတ်မထိုးဒဿမနံပါတ် (နောက်တဖန်တစ်ဦးကိန်း) ။

ကို% s

တစ်ဦးကဇာတ်ကောင် string ကို။

% က x% က X

တစ်ခုကလက်မှတ်မထိုး hexadecimal number ကို (တစ်ဦးကိန်း) ။ အဆိုပါ% X ကို format နဲ့ ABCDEF အစား abcdef အသုံးပြုသည်။

%%

တစ်ဦးကတစ်ခုတည်း% ဇာတ်ကောင်; အဘယ်သူမျှမငြင်းခုံကူးပြောင်းသည်။

optional, အပိုဆောင်း parameters တွေကိုပု% နှင့်ထိန်းချုပ်မှုအက္ခရာအကြားအိပ်ရပေမည်:

count က $

ယင်းပုံစံချပေး၌ဤအချက်မှာ count က '' ကြိမ်မြောက်အငြင်းအခုံကိုသုံးပါ။ ဒါက positional သတ်မှတ်ထားတဲ့ဟုခေါ်သည်နှင့် format နဲ့ကွိုးဘာသာပြန်ထားသောဗားရှင်းအတွက်မ AWK အစီအစဉ်၏မူလစာသားထဲမှာအဓိကအားဖြင့်အသုံးပြုရန်ရည်ရွယ်ထားသည်။ ဒါဟာ gawk extension တခုဖြစ်တယ်။

-

ဟူသောအသုံးအနှုနျး left-အပြစ်နှင့်လွတ်ရမည်င်း၏လယ်ကွင်းအတွင်း။

အာကာသ

တော်တော်များများဆွေးနွေးခဲ့ပါတယ်တစ်ဦးအာကာသနှင့်အတူရှေ့ဆက်အပြုသဘောတန်ဖိုးများနှင့်အနှုတ်လက္ခဏာသက်သေနှင့်အတူအနုတ်လက္ခဏာတန်ဖိုးများသည်။

+

width ကိုအထူးပြုမတိုင်မီအသုံးပြုတဲ့အပေါငျးလက်ခဏာ, (အောက်တွင်ကြည့်ပါ), အပြုသဘောသည်ဒေတာကို format ခံရဖို့ပင်လျှင်, အစဉ်မပြတ်တော်တော်များများဆွေးနွေးခဲ့ပါတယ်အဘို့ဖြစ်သောနိမိတ်လက္ခဏာကိုထောက်ပံ့ဖို့ကပြောပါတယ်။ အဆိုပါ + space ကိုအထူးပြုပြောင်းလဲသတ်မှတ်လိုက်သည်။

#

အခြို့သောထိန်းချုပ်မှုအက္ခရာများဘို့ '' တစ်ဦး `` အခြားပုံစံ '' ကိုသုံးပါ။ % ဏများအတွက်, တစ်ဦးဦးဆောင်သုညရောင်းချလျက်ရှိကြသည်။ % က x နှင့်% X ကိုအဘို့, တစ်ဦး nonzero ရလဒ်အဘို့အဦးဆောင် 0x သို့မဟုတ် 0X ရောင်းချလျက်ရှိကြသည်။ % က e% E ကိုနှင့်%, f အဘို့, ရလဒ်ကအမြဲတစ်ဒဿမအမှတ်ပါရှိသည်။ % ဂရမ်နှင့်%, G များအတွက်ကပ်တွယ်မှုကိုသုညရလဒ်မှဖယ်ရှားပစ်ကြသည်မဟုတ်။

0 င်

တစ်ဦးကဦးဆောင် 0 (သုည) output ကိုသုညအစားနေရာများနှင့်အတူတေးသံထွက်ထားရမည်ကိုညွှန်ပြကြောင်း, တစ်ဦးအလံအဖြစ်ဆောင်ရွက်သည်။ ဤသည်ကိုပင် Non-numeric output ကိုကို formats သက်ဆိုင်သည်။ ဤသည်အလံသာကိုလယ် width ကိုပုံနှိပ်ခံရဖို့တန်ဖိုးကိုထက်ပိုမိုကျယ်ပြန်အခါတစ်ဦးအကျိုးသက်ရောက်မှုရှိပါတယ်။

အကျယ်

လယ်ပြင်ဒီ width ကိုမှတေးသံထွက်ရပါမည်။ လယ်ပြင်ပုံမှန်နေရာများနှင့်အတူတေးသံထွက်နေပါတယ်။ အဆိုပါ 0 င်အလံကိုအသုံးပြုထားပြီးဆိုပါကသုညနှင့်အတူတေးသံဖြစ်ပါတယ်။

prec

ပုံနှိပ်သည့်အခါသုံးစွဲဖို့အတွက်တိကျသတ်မှတ်ပါတယ်သောအရေအတွက်ကို။ အဆိုပါ% က e% E ကိုနှင့်%, f ကို formats ဤသင်ဒဿမ point ရဲ့ညာဘက်ပုံနှိပ်ချင်ဂဏန်း၏နံပါတ်သတ်မှတ်ပါတယ်။ အဆိုပါ% ဂရမ်နှင့်%, G ကို formats သည်သိသာထင်ရှားသောဂဏန်းအများဆုံးအရေအတွက်ကသတ်မှတ်ပါတယ်။ အဆိုပါ% ဃ% ဏ% ဈ% ဦး% က x နှင့်% က X ကို formats သည် print ထုတ်မှဂဏန်း၏နိမ့်ဆုံးအရေအတွက်ကသတ်မှတ်ပါတယ်။ % s အတွက်ကြောင့်ပုံနှိပ်သင့်ကြောင်း string ကိုကနေဇာတ်ကောင်များ၏အများဆုံးအရေအတွက်ကသတ်မှတ်ပါတယ်။

အဆိုပါပြောင်းလဲနေသောအကျယ်နှင့် ANSI C ကို printf (၏ prec စွမ်းရည်) လုပ်ရိုးလုပ်စဉ်ထောက်ခံနေကြသည်။ width ကိုသို့မဟုတ် prec သတ်မှတ်ချက်များဖြစ်စေ၏အရပျ၌တစ်ဦးက *) (မိမိတို့၏တန်ဖိုးများ printf သို့မဟုတ် sprintf ဖို့အငြင်းအခုံစာရင်းထဲကယူခံရဖို့ကိုဖြစ်ပေါ်စေသည်။ တစ်ဦးပြောင်းလဲနေသောအကျယ်သို့မဟုတ်တိကျစွာနဲ့ positional သတ်မှတ်ထားတဲ့သုံးစွဲဖို့, ပုံစံ string ကိုအတွက် * ပြီးနောက်ရေတွက် $ ထောက်ပံ့။ ဥပမာအားဖြင့်, "% 3 $ * 2 $ ။ * 1 $ s ကို"

အထူးဖိုင်မှတ်တမ်းအမည်များ

ဖိုင်တစ်ဖိုင်ကနေဖိုင်တစ်ဖိုင်သို့ပုံနှိပ်သို့မဟုတ် printf ဖြစ်စေထံမှ I / O redirection လုပ်နေတာ, ဒါမှမဟုတ် getline မှတဆင့်လိုက်တဲ့အခါ, gawk ပြည်တွင်းရွှေ့ပြောင်းအချို့သောအထူး filename အသိအမှတ်ပြုထားသည်။ ဤရွေ့ကား filename gawk 's မိဘလုပ်ငန်းစဉ်သည် (အများအားဖြင့်အခွံ) မှအမွေဆက်ခံဖွင့်ထားဖိုင်ကို descriptor များကိုဝင်ရောက်ခွင့်ခွင့်ပြုပါ။ ဤရွေ့ကားဖိုင်အမည်များကိုဒေတာဖိုင်များကိုအမည်ကိုဖို့ command line ကအပေါ်လည်းအသုံးပြုကြသည်နိုင်ပါသည်။ အဆိုပါ filename နေသောခေါင်းစဉ်:

/ dev / stdin

အဆိုပါစံ input ကို။

/ dev / stdout

အဆိုပါစံ output ကို။

/ dev / stderr

စံအမှား output ကို။

/ dev / fd / n

ပွင့်လင်းဖိုင် descriptor ကိုဎနှင့်ဆက်စပ်ဖိုင်ကို။

ဤရွေ့ကားအမှားမက်ဆေ့ခ်ျများအတွက်အထူးအသုံးဝငျပါသညျ။ ဥပမာ:

ပုံနှိပ် "သင်ကမှုတ်!" > "/ dev / stderr"

သငျသညျမဟုတ်ရင်သုံးစွဲဖို့ရှိသည်မယ်လို့သော်လည်း

ပုံနှိပ် "သင်ကမှုတ်!" | "ကြောင် 1> & 2"

TCP / IP ကွန်ယက်ဆက်သွယ်မှုဖန်တီး & Co-ဖြစ်စဉ်ကိုအော်ပရေတာ | အောက်ပါအထူး filename ယင်းနှင့်အတူအသုံးပြုရပေမည်။

/ inet / TCP / lport / rhost / rport

လာဖို့အတွက် File ကို TCP / IP ကို ဝေးလံသောဆိပ်ကမ်းကို rport အပေါ်ဝေးလံခေါင်သီအိမ်ရှင် rhost မှဒေသခံဆိပ်ကမ်းကို lport အပေါ်ကွန်နက်ရှင်။ စနစ်ဆိပ်ကမ်းကောက်ရှိသည်ဖို့ 0 င်တစ်ဦးဆိပ်ကမ်းကိုအသုံးပြုပါ။

/ inet / udp / lport / rhost / rport

အလားတူပေမယ့်အသုံးပြုနိုင်သည် UDP ကို / IP ကို အစားကို TCP / IP ကို။

/ inet / ကုန်ကြမ်း / lport / rhost / rport

အနာဂတ်အသုံးပြုမှုအတွက် reserved ။

အခြားအထူး filename အဆိုပါအပြေး gawk လုပ်ငန်းစဉ်နှင့် ပတ်သက်. သတင်းအချက်အလက်မှဝင်ရောက်ခွင့်ကိုပေး။ ဤရွေ့ကား filename ယခုပေါရာဏဖြစ်ကြသည်။ သူတို့ပေးသတင်းအချက်အလက်များရယူဖို့ PROCINFO ခင်းကျင်းသုံးပါ။ အဆိုပါ filename နေသောခေါင်းစဉ်:

/ dev / PID

ဒီ file ကိုဖတ်ရှုခြင်းတစ်ဦး NEWLINE နှင့်အတူရပ်စဲ, ဒဿမအတွက်လက်ရှိလုပ်ငန်းစဉ်၏လုပ်ငန်းစဉ် ID ကိုပြန်လည်ရောက်ရှိ။

/ dev / ppid

ဒီ file ကိုဖတ်ရှုခြင်းတစ်ဦး NEWLINE နှင့်အတူရပ်စဲ, ဒဿမအတွက်လက်ရှိလုပ်ငန်းစဉ်၏မိဘလုပ်ငန်းစဉ်အား ID ကိုပြန်လည်ရောက်ရှိ။

/ dev / pgrpid

ဒီ file ကိုဖတ်ရှုခြင်းတစ်ဦး NEWLINE နှင့်အတူရပ်စဲဒဿမအတွက်လက်ရှိလုပ်ငန်းစဉ်၏ဖြစ်စဉ်ကိုအုပျစု ID ကို, ပြန်လည်ရောက်ရှိ။

/ dev / အသုံးပြုသူ

ဒီ file ကိုဖတ်ရှုခြင်းတစ်ဦး NEWLINE နှင့်အတူရပ်စဲတစ်ခုတည်းစံချိန်ပြန်လည်ရောက်ရှိ။ လယ်ကွင်းနေရာများနှင့်အတူကွဲကွာနေကြသည်။ $ 1, $ 2 geteuid (2) စနစ်ခေါ်ဆိုခများ၏တန်ဖိုးသည် getuid (2) system ကိုဖုန်းခေါ်ဆိုမှု၏တန်ဖိုးသည်, $ 3 getgid (2) system ကိုဖုန်းခေါ်ဆိုမှု၏တန်ဖိုးသည် ဖြစ်. , $ 4 getegid ၏တန်ဖိုးပင်ဖြစ်သည် (2) စနစ်ကခေါ်ဆိုခ။ မည်သည့်အပိုဆောင်းလယ်ကွက်ရှိပါတယ်ဆိုရင်သူတို့ getgroups (2) ကပြန်လာသောအုပ်စု၏ ID ဖြစ်ကြသည်။ အကွိမျမြားစှာအုပျစုမြားအားလုံးစနစ်များအပေါ်ထောက်ခံမည်မဟုတ်ပါ။

numeric Functions များ

AWK အောက်ပါ built-in ဂဏန်းသင်္ချာ functions တွေရှိပါတယ်:

atan2 (y က x က)

radians အတွက်က y / x ရဲ့ arctangent Returns ။

cos (expr)

radians ၌တည်သော expr ၏ဆိုင်း, Returns ။

EXP (expr)

အဆိုပါအဆ function ကို။

int (expr)

ကိန်းမှ Truncates ။

(expr) log

သဘာဝလော်ဂရစ်သမ် function ကို။

ကျပန်း ()

0 နဲ့ 1 အကြားတစ်ဦးကိုကျပန်းနံပါတ်တစ်ခု Returns ။

အပြစ်တရား (expr)

radians ၌တည်သော expr ၏ sine, Returns ။

sqrt (expr)

အဆိုပါစတုရန်းအမြစ် function ကို။

srand ([expr])

အဆိုပါကျပန်းနံပါတ်တစ်ခုမီးစက်များအတွက်အသစ်တခုအမြိုးအနှယျအဖြစ် expr အသုံးပြုသည်။ အဘယ်သူမျှမ expr ထောက်ပံ့လျှင်, နေ့၏အချိန်ကိုအသုံးပြုသည်။ အဆိုပါပြန်လာတန်ဖိုးကျပန်းနံပါတ်တစ်ခုမီးစက်များအတွက်ယခင်အမြိုးအနှယျဖြစ်ပါတယ်။

string Functions များ

Gawk အောက်ပါ built-in string ကိုလုပ်ဆောင်ချက်များကိုရှိပါတယ်:

asort (s [ဃ])

အရင်းအမြစ်ခင်းကျင်း့အတွက်ဒြပ်စင်၏နံပါတ်ပြန်ပို့ပေးသည်။ s ကိုရဲ့ contents တန်ဖိုးများကိုနှိုင်းယှဉ်ခြင်းအဘို့အ gawk 's ပုံမှန်စည်းမျဉ်းစည်းကမ်းတွေကိုသုံးပြီးခွဲခြားပေးသည်ကို၎င်း, optional ကိုဦးတည်ရာကိုခင်းကျင်းဃသတ်မှတ်ထားသောလျှင် s ကို၏စီထားသောတန်ဖိုးများ 1. နှင့်အတူစတင် sequential ကိန်းဖြင့်အစားထိုးကြသည်၏အညွှန်းကိန်း, ထို့နောက် s ကိုပထမဦးဆုံးဃသို့ကော်ပီပွားယူနေသည် , ပြီးတော့ဃမပြောင်းလဲအရင်းအမြစ်ခင်းကျင်း့ရဲ့အညွှန်းကိန်းထွက်ခွာစီထားသည်။

gensub (r ့, [t])

ပုံမှန်စကားရပ် r ၏ပွဲစဉ်များအတွက်ပစ်မှတ် string ကို t ကိုရှာပါ။ ဇဂရမ်သို့မဟုတ်, G နှင့်အတူစတင်တစ်ဦး string ကိုဖြစ်တယ်ဆိုရင်, ထို့နောက် s ဖြင့်, r အပေါငျးတို့သပွဲအစားထိုးလိုက်ပါ။ ဒီလိုမှမဟုတ်ရင်ဇအစားထိုး r ၏ထားတဲ့ပွဲစဉ်ကိုညွှန်းတဲ့အရေအတွက်ဖြစ်ပါတယ်။ t ကိုထောက်ပံ့မထားလျှင်, $ 0 င်မယ့်အစားအသုံးပြုသည်။ အစားထိုးစာသားကို့အတွင်းမှာပဲဎ 1 မှ 9 တစ်ခုဂဏန်းဖြစ်ပါတယ်ရှိရာ sequence ကို \ n က, ကွင်း subexpression ကြိမ်မြောက်အဆိုပါ n 'လိုက်ဖက့်စာသားညွှန်ပြရန်အသုံးပြုနိုင်ပါသည်။ ဇာတ်ကောင် & မအဖြစ် 0 င် \ အဆိုပါ sequence ကို, တစ်ခုလုံးလိုက်ဖက်စာသားကိုကိုယ်စားပြုတယ်။ ခွဲ () နှင့် gsub () မတူဘဲ, ပြုပြင်ထားသော string ကို function ကို၏ရလဒ်အဖြစ်ပြန်ရောက်သည်နှင့်မူရင်းပစ်မှတ် string ကိုပြောင်းလဲပစ်မထားပါ။

gsub (r, s ကို [t])

string ကို t အတွက်ပုံမှန်စကားရပ် r ကိုကိုက်ညီတစ်ဦးချင်းစီ substring အဘို့, string ကို s ကိုအစားထိုးခြင်း, အစားထိုး၏နံပါတ်ပြန်သွားပါ။ t ကိုထောက်ပံ့မထားလျှင်, $ 0 င်သုံးပါ။ တစ်ဦးနှင့်အစားထိုးစာသားထဲမှာအမှန်တကယ်လိုက်ဖက်သောစာသားကိုဖြင့်အစားထိုးသည်။ \ & ပကတိ & ရဖို့အသုံးပြုခြင်း။ (ဤ "\\ &" အဖြစ်ရိုက်နှိပ်ရမည်ဖြစ်သည်; တွေ့မြင် GAWK ။ ခွဲများ၏အစားထိုးစာသား (ခုနှစ်တွင် & '' s နှင့်ဘယ်ဘက်မျဉ်းစောင်းအဘို့စည်းမျဉ်းစည်းကမ်းတွေကိုတစ်ခဝါသည်ဆွေးနွေးမှုများအတွက်ထိရောက်သော AWK Programming), gsub () နှင့် gensub ())

အညွှန်းကိန်း (s ကို, t ကို)

t ကိုလက်ရှိမပါလျှင် string ကိုကိုယ့်အတွက် string ကို t ကို၏အညွှန်းကိန်း Returns, ဒါမှမဟုတ် 0 င်။ (ဤဇာတ်ကောင်ညွှန်းကိန်းမှာ start ကိုဆိုလို။ )

အရှည် ([s ကို])

s ကိုထောက်ပံ့မပေးလျှင် string ကိုကိုယ့်ရဲ့အရှည် Returns, ဒါမှမဟုတ် $ 0 င်များ၏အရှည်။

ပွဲစဉ် (s, r [တစ်])

r ကိုပစ္စုပ္ပန်မရှိ, RSTART နှင့် RLENGTH များ၏တန်ဖိုးများကိုသတ်မှတ်မယ်ဆိုရင်ပုံမှန်စကားရပ် r ကိုဖြစ်ပေါ်ဘယ်မှာ့အတွက်အနေအထား Returns, ဒါမှမဟုတ် 0 င်။ STR ~ ပြန်လည်: အငြင်းခုံနိုင်ရန်အတွက် ~ အော်ပရေတာအဖြစ်အတူတူပင်ဖြစ်ပါသည်သတိပြုပါ။ ခင်းကျင်းနေတဲ့ထောက်ပံ့ပေးလျှင်တစ်ဦးရှင်းလင်းတာဖြစ်ပါတယ်, ပြီးတော့ဎမှတဆင့် element တွေကို 1, r အတွက်သက်ဆိုင်ရာကွင်း subexpression ကိုက်ညီသော s ကို၏ဝေမျှနှင့်ပြည့်စုံနေကြသည်။ တစ်ဦး၏ 0'th ဒြပ်စင်တစ်ခုလုံးကိုပုံမှန်စကားရပ်, r လိုက်ဖက် s ကို၏အဘို့ပါရှိသည်။

အုပ်စုခွဲ (s ကိုတစ်ဦး [r])

ပုံမှန်စကားရပ် r ပေါ်တွင်ခင်းကျင်းတစ်စ string ကို့ကိုစူးနှင့်လယ်ယာ၏နံပါတ်ပြန်လည်ရောက်ရှိ။ r ကိုချန်လှပ်လျှင် FS အစားအသုံးပြုသည်။ အဆိုပါစစ်ခင်းကျင်းတစ်ဦးပထမဦးဆုံးရှင်းလင်းနေသည်။ splitting အထက်တွင်ဖော်ပြထားသောလယ်ပိုင်းခြားမှတူညီပြုမူ။

sprintf (fmt, expr-စာရင်း)

fmt သည်နှင့်အညီပုံနှိပ်ခြင်း expr-list နဲ့ရရှိလာတဲ့ string ကို return ပွနျ။

strtonum (str)

str ကို examine, နှင့်၎င်း၏ဂဏန်းတန်ဖိုးကို return ပွနျ။ str ဦးဆောင်ပါ 0 င်နှင့်အတူစတင်ပါက, strtonum () str တစ်ခု octal အရေအတွက်ကိုကြောင်းယူဆတယ်။ str ဦးဆောင် 0x သို့မဟုတ် 0X နှင့်အတူစတင်ပါက, strtonum () str တစ် hexadecimal number ကိုကြောင်းယူဆတယ်။

ခွဲ (r, s ကို [t])

ရုံသာပထမဦးဆုံးကိုက်ညီခြင်း substring အစားထိုးသည်) (gsub လိုပဲ။

substr (s ကို, ကိုယ့် [n])

ကိုယ့်မှာစတင် s ကို၏အများဆုံးဎ -character substring Returns ။ ဎချန်လှပ်လျှင် s ကို၏ကျန်ကိုအသုံးပြုသည်။

tolower (str)

သူတို့ရဲ့သက်ဆိုင်ရာအောက်ပိုင်း-ကိစ္စတွင် counterparts တွေကိုမှဘာသာပြန်ထားသော str အားလုံးကိုအထက်-ကိစ္စတွင်ဇာတ်ကောင်နှင့်တကွ, string ကို str တစ်ဦးမိတ္တူပြန်ပို့ပေးသည်။ non-အက်ခရာစဉျဇာတ်ကောင်မပြောင်းလဲကျန်ရစ်နေကြပါတယ်။

toupper (str)

သူတို့ရဲ့သက်ဆိုင်ရာအထက်-ကိစ္စတွင် counterparts တွေကိုမှဘာသာပြန်ထားသော str အားလုံးကိုအောက်ပိုင်း-ကိစ္စတွင်ဇာတ်ကောင်နှင့်တကွ, string ကို str တစ်ဦးမိတ္တူပြန်ပို့ပေးသည်။ non-အက်ခရာစဉျဇာတ်ကောင်မပြောင်းလဲကျန်ရစ်နေကြပါတယ်။

အချိန် Functions များ

AWK အစီအစဉ်များ၏မူလတန်းအသုံးပြုမှုများ၏တဦးတည်းအချိန်တံဆိပ်ခေါင်းသတင်းအချက်အလက်ဆံ့ကြောင်းမှတ်တမ်းဖိုင်များကို processing ဖြစ်ပါတယ်ကတည်းက gawk အချိန်တံဆိပ်ခေါင်းများရယူသူတို့ကိုပုံစံများအတွက်အောက်ပါလုပ်ငန်းဆောင်တာကိုထောက်ပံ့ပေး။

mktime (datespec)

Rurns) (systime အားဖြင့်ပြန်လာသောကဲ့သို့တူညီသောပုံစံနေတဲ့အချိန်တံဆိပ်ခေါင်းသို့ datespec ။ အဆိုပါ datespec ပုံစံ YYYY MM DD နာရီ MM အက်စ်အက်စ် [ပညာ,] တစ်ဦး string ကိုဖြစ်ပါတယ်။ string ကိုရဲ့ contents 0 င်မှ, 0 ထဲကနေမှ 23 ထိုနေ့၏နာရီ, 1 မှ 12 ငှါ, တစ်မိနစ် 1 မှ 31 လ၏နေ့လအသီးသီးရာစုအပါအဝင်အပြည့်အဝနှစ်ကကိုယ်စားပြုခြောက်လသို့မဟုတ်ခုနစ်ခုဂဏန်းများမှာ 59 နှင့်ပါ 0 င်ကနေ 60 မှဒုတိယနှင့် optional ကိုမိုဃ်းလင်းချွေတာရေးအလံ။ ဤနံပါတ်များများ၏တန်ဖိုးများကိုသတ်မှတ်ထားသောနှုန်းများကိုအတွင်းမဖွစျလိုအပျသ; ဥပမာအားဖြင့်, ၏ -1 တစ်နာရီသန်းခေါင်မတိုင်မီ 1 နာရီကိုဆိုလိုသည်။ အချိန် 0. တစ်နှစ် 1 ရှေ့တစ်နှစ် 0 င်များနှင့်တစ်နှစ် -1 ရှေ့နှစ်တွင်ဒေသခံစံတော်ချိန်အတွက်ဖြစ်ဖို့ယူဆနေသည်နှင့်အတူဇာစ်မြစ်ကိုသုည Gregorian ပြက္ခဒိန်, ယူဆနေသည်။ အလံချွေတာသည့်နေ့အပြုသဘောဖြစ်ပါတယ်လျှင်, အချိန်မိုဃ်းလင်းချွေတာရေးအချိန်ဖြစ်ယူဆလျက်ရှိ၏ သုညလျှင်, အချိန်စံအချိန်ဖြစ်ယူဆလျက်ရှိ၏ နှင့်အပျက်သဘောကို (ပုံသေ) သည်မှန်လျှင်, mktime () နေ့ချွေတာအချိန်သတ်မှတ်ထားသောအချိန်များအတွက်အကျိုးသက်ရောက်မှု၌တည်ရှိ၏ရှိမရှိဆုံးဖြတ်ရန်ရန်ကြိုးစားသည်။ datespec အလုံအလောက်ဒြပ်စင်ဆံ့မပါဘူးဆိုရင်ဒါမှမဟုတ်ရရှိလာတဲ့အချိန်အကွာအဝေးထဲကလျှင် mktime () return ပွနျ -1 ။

strftime ([format နဲ့ [Timestamp ကို]])

formats ပုံစံအတွက်သတ်မှတ်ချက်နှင့်အညီ TIMESTAMP Timestamp ကို) systime (နေဖြင့်ပြန်လာသောကဲ့သို့တူညီသောပုံစံဖြစ်သင့်သည်။ Timestamp ကိုပျောက်ဆုံးလျှင်, နေ့၏လက်ရှိအချိန်ကိုအသုံးပြုသည်။ ပုံစံ၏ output ကိုညီမျှတစ်ဦးက default format နဲ့ပျောက်ဆုံးလျှင် နေ့စွဲ (1) ကိုအသုံးပြုသည်။ ရရှိနိုင်ပါလိမ့်အာမခံသောပုံစံစကားဝိုင်းအတွက် ANSI C အထဲတွင် strftime () function ကိုများအတွက်သတ်မှတ်ချက်ကိုကြည့်ပါ။ strftime ၏တစ်ဦးကအများပိုင်-ဒိုမိန်းဗားရှင်း (3) နှင့်က gawk အတူပါလာဘို့ယောက်ျားသည်စာမျက်နှာ; အဲဒီ version gawk တည်ဆောက်ရန်အသုံးပြုခဲ့သည်လျှင်, ထိုလူ၏စာမျက်နှာမှာဖော်ပြထားတဲ့စကားဝိုင်း၌ရှိသမျှသော gawk မှရရှိနိုင်ပါသည်။

systime ()

(POSIX စနစ်များအပေါ် 00:00:00 UTC 1970-01-01) ကိုယုဂ်ကတည်းကစက္ကန့်တွေရဲ့အရေအတွက်အဖြစ်နေ့၏လက်ရှိအချိန် Returns ။

bit ကိုင်တွယ် Functions များ

gawk ၏ဗားရှင်း 3.1 နှင့်အတူစတင်ခြင်းအောက်ပါ bit နဲ့ကိုင်တွယ်လုပ်ဆောင်ချက်များကိုရရှိနိုင်ပါသည်။ သူတို့ကလက်မှတ်မထိုးတာရှည်ကိန်းမှကို double-တိကျစွာ floating အမှတ်တန်ဖိုးများပြောင်းလဲစစ်ဆင်ရေးလုပ်နေတာ, ပြီးတော့ပြန် floating အမှတ်ရလဒ်ပြောင်းလဲနေဖြင့်အလုပ်လုပ်ကြသည်။ အဆိုပါလုပ်ငန်းဆောင်တာများမှာ:

နှင့် (V1, v2)

အဆိုပါ bitwise သို့ပြန်သွားသည်နှင့် V1 နှင့် v2 ပေးတန်ဖိုးများ။

compl (Val)

Val ၏ bitwise အဖြည့်ပြန်သွားပါ။

lshift (Val မှတ်)

Val ၏တန်ဖိုးပြန်သွား, count က-bits များကကျန်ရစ်အပြောင်းအလဲဖြစ်သွားလေသည်။

သို့မဟုတ် (V1, v2)

အဆိုပါ bitwise ပြန်သွား OR V1 နှင့် v2 ပေးတန်ဖိုးများ။

rshift (Val မှတ်)

Val ၏တန်ဖိုးပြန်သွား, count က-bits များကညာဘက်ကိုအပြောင်းအလဲဖြစ်သွားလေသည်။

xor (V1, v2)

V1 နှင့် v2 ပေးတန်ဖိုးများ၏ bitwise XOR သို့ပြန်သွားသည်။

internationalization Functions များ

gawk ၏ဗားရှင်း 3.1 နှင့်အတူစတင်ခြင်းအောက်ပါလုပ်ဆောင်ချက်များကို Run-အချိန်တွင်ညှို့ဘာသာပြန်ဆိုအဘို့သင့် AWK အစီအစဉ်ကိုအတွင်းကနေကိုအသုံးပြုနိုင်ပါသည်။ ထိရောက်သော AWK Programming: အပြည့်အဝအသေးစိတ်အတွက် GAWK ကြည့်ပါ။

bindtextdomain (directory ကို [ဒိုမိန်း])

gawk သူတို့မပါသို့မဟုတ် `` စံ '' တည်နေရာ (ဥပမာစမ်းသပ်နေစဉ်အတွင်း) တွင်ထားရှိရနိုင်မှာမဟုတ်ဘူးကိစ္စတွင်ထဲမှာ, .mo ဖိုင်များကိုကြည့်ရှုရှိရာ directory ကိုဖေါ်ပြသည်။ ဒါဟာဒိုမိန်း `` ခညျြနှောငျသည်အဘယ်မှာရှိ directory ကိုပြန်လည်ရောက်ရှိ။ ''

ကို default ဒိုမိန်း TEXTDOMAIN ၏တန်ဖိုးဖြစ်ပါတယ်။ directory မှာတရားမဝင်သော string ကို ( "") ဖြစ်ပါသည်လျှင်, () bindtextdomain ပေးထားသောဒိုမိန်း binding လက်ရှိပြန်လည်ရောက်ရှိ။

dcgettext (string ကို [ဒိုမိန်း [အမျိုးအစား]])

ဒေသအမျိုးအစားအမျိုးအစားအဘို့အစာသားကိုဒိုမိန်းဒိုမိန်းထဲမှာ string ၏ဘာသာပြန်ချက် Returns ။ ဒိုမိန်းများအတွက် default value ကို TEXTDOMAIN ၏လက်ရှိတန်ဖိုးကဖြစ်ပါတယ်။ အမျိုးအစားများအတွက် default value ကို "LC_MESSAGES" ဖြစ်ပါတယ်။

ထိရောက်သော AWK Programming: သင်အမျိုးအစားတစ်ခုတန်ဖိုးကိုထောက်ပံ့လျှင်, GAWK မှာဖော်ပြထားတဲ့လူသိများဒေသအမျိုးအစားများထဲမှညီမျှတစ်ဦး string ကိုဖြစ်ရပါမည်။ သင်တို့သည်လည်းစာသားဒိုမိန်းထောက်ပံ့ရပါမည်။ သငျသညျလက်ရှိဒိုမိန်းကိုအသုံးပြုချင်တယ်ဆိုရင် TEXTDOMAIN ကိုသုံးပါ။

dcngettext (string1, string2 အရေအတွက် [ဒိုမိန်း [အမျိုးအစား]])

ဒေသအမျိုးအစားအမျိုးအစားအဘို့အစာသားကိုဒိုမိန်းဒိုမိန်းအတွက် string1 နှင့် string2 ၏ဘာသာပြန်ချက်အရေအတွက်များအတွက်အသုံးပြုသောအများကိန်း Returns ။ ဒိုမိန်းများအတွက် default value ကို TEXTDOMAIN ၏လက်ရှိတန်ဖိုးကဖြစ်ပါတယ်။ အမျိုးအစားများအတွက် default value ကို "LC_MESSAGES" ဖြစ်ပါတယ်။

ထိရောက်သော AWK Programming: သင်အမျိုးအစားတစ်ခုတန်ဖိုးကိုထောက်ပံ့လျှင်, GAWK မှာဖော်ပြထားတဲ့လူသိများဒေသအမျိုးအစားများထဲမှညီမျှတစ်ဦး string ကိုဖြစ်ရပါမည်။ သင်တို့သည်လည်းစာသားဒိုမိန်းထောက်ပံ့ရပါမည်။ သငျသညျလက်ရှိဒိုမိန်းကိုအသုံးပြုချင်တယ်ဆိုရင် TEXTDOMAIN ကိုသုံးပါ။

USER မှ-defined function

အောက်မှာဖေါ်ပြတဲ့အတိုင်း AWK အတွက် Functions များသတ်မှတ်ကြပါတယ်:

function name (parameter သည်စာရင်း) {ထုတ်ပြန်ချက်များ}

သူတို့ပုံစံများသို့မဟုတ်လုပ်ရပ်များဖြစ်စေများတွင်အသုံးအနှုနျးမြားအတှငျးမှခေါ်တော်မူကြသောအခါ Functions များကွပ်မျက်ခံရနေကြသည်။ function ကိုဖုန်းခေါ်ဆိုမှုအတွက်ထောက်ပံ့အမှန်တကယ် parameters တွေကို function ကိုကြေညာတရားဝင် parameters တွေကို instantiate ဖို့အသုံးပြုကြပါတယ်။ Array ကိုရည်ညွှန်းခြင်းဖြင့်လွန်နေကြသည်အခြား variable တွေကိုတန်ဖိုးကိုကအတည်ပြုကြသည်။

လုပ်ဆောင်ချက်များကိုမူလ AWK ဘာသာစကား၏အစိတ်အပိုင်းတစ်ရပ်မဟုတ်ကြကတည်းကဒေသခံ variable တွေကိုများအတွက်ပြဌာန်းချက်မဟုတ်ဘဲညံ့ဖျင်းသောဖြစ်ပါသည်: သူတို့က parameter သည်စာရင်းထဲတွင်အပို parameters များကိုအဖြစ်ကြေငြာရသည်။ စည်းဝေးကြီးသို့သော်လည်း parameter စာရင်းထဲတွင်အပိုနေရာများအားဖြင့်အစစ်အမှန် parameters တွေကိုထံမှဒေသခံ variable တွေကိုခွဲထုတ်ဖို့ဖြစ်တယ်။ ဥပမာ:

function ကို, f (p, q, တစ်ဦး, ခ) # a နဲ့ b {{ ... } / abc / ဒေသခံများမှာ ... ; f (1, 2); ... }

တစ်ဦး function ကိုဖုန်းခေါ်ဆိုမှုအတွက်လက်ဝဲကွင်းကိုချက်ချင်းမဆိုကွားအဖြူအာကာသမရှိပဲ, function ကိုနာမကိုအမှီလိုက်လျှောက်ရန်လိုအပ်ပါသည်။ ဒါက concatenation အော်ပရေတာနှင့်အတူတစ် syntactic မရေရာဒွိဟကိုရှောင်ရှားဖို့ဖြစ်ပါတယ်။ ဤသည်ကန့်သတ်အထက်တွင်ဖော်ပြထားသော built-in function တွေကိုလျှောက်ထားမထားဘူး။

Functions များတစ်ဦးချင်းစီကတခြားကိုခေါ်နိုင်ပြီးတဲ့ request ဖြစ်နိုင်သည်။ ဒေသခံ variable တွေကိုအဖြစ်အသုံးပြု function parameters တွေကိုပုတရားမဝင်သော string ကိုနဲ့ function ကို invocation အပေါ်သို့အရေအတွက်ကသုညမှနနေကြပါတယ်။

တစ်ဦး function ကိုကနေတန်ဖိုးပြန်သွားဖို့ပြန်လာ expr ကိုသုံးပါ။ အဘယ်သူမျှမတနျဖိုး `` '' အဆုံးချွတ်ကျသွားပေးဒါမှမဟုတ် function ကိုပြန်လျှင်ပြုလုပ်လျှင်ပြန်လာတန်ဖိုးကို undefined ဖြစ်ပါတယ်။

--lint ထောက်ပံ့ပေးလျက်ရှိသည်ရှိလျှင်, gawk ဤဖွဲ့စည်းတည်ဆောက်မှုပုံစံအချိန်တွင်အစားပြေးအချိန်တွင် undefined လုပ်ဆောင်ချက်များကိုမှခေါ်ဆိုမှုများအကြောင်းသတိပေးပါတယ်။ ပြေးအချိန်တွင်တစ်ဦး undefined function ကို Calling ဖြစ်တဲ့ Fatal error ဖြစ်ပါတယ်။

အဆိုပါစကားလုံး func function ကိုရာတွင်အသုံးပြုနိုင်ပါသည်။

Dynamic NEW function Loading

gawk ၏ဗားရှင်း 3.1 နှင့်အတူစတင်, သင်သည် dynamically အဆိုပါအပြေး gawk စကားပြန်အသစ် built-in function တွေကိုထည့်သွင်းနိုင်ပါတယ်။ အပြည့်အဝအသေးစိတ်ကိုဒီလက်စွဲစာမျက်နှာ၏အတိုင်းအတာထက်ကျော်လွန်ပါ၏ အသေးစိတျအဘို့အထိရောက်သော AWK Programming: GAWK ကြည့်ပါ။

တိုးချဲ့မှု (အရာဝတ္ထု, function ကို)

dynamically အရာဝတ္ထုအားဖြင့်အမည်ရှိ shared အရာဝတ္ထုဖိုင်လင့်ထားသည်နှင့်အရာဝတ္ထုအတွက် function ကိုမြွက်အစပိုင်းမှာဖျော်ဖြေဖို့။ ဤရွေ့ကားနှစ်ခုလုံးကိုညှို့အဖြစ်ပေးအပ်ရပါမည်။ function ကိုအားဖြင့်ပြန်လာသောတန်ဖိုးကို Returns ။

ဒီ function ထောက်ပံ့ခြင်းနှင့်မှတ်တမ်းတင် GAWK အတွက်ဖြစ်ပါတယ်: ထိရောက်သော AWK Programming, ဒါပေမယ့်ဒီ feature အကြောင်းကိုအရာအားလုံးလာမည့်လွှတ်ပေးရန်အတွက်ကိုပြောင်းဖွယ်ရှိသည်။ ကျနော်တို့ပြင်းပြင်းထန်ထန်သင်ထပ်မံဆန္ဒရှိမစပ်ဆိုင်ကြောင်းကိုဘာမှအဘို့ဤအင်္ဂါရပ်ကိုမသုံးကြဘူးကြောင်းအကြံပြုပါသည်။

signal

pgawk နှစ်ခုအချက်ပြမှုများကိုလက်ခံခဲ့သည်။ SIGUSR1 ကြောင့်ဖြစ်စေ awkprof.out သောပရိုဖိုင်းကိုဖိုင်တစ်ပရိုဖိုင်းနဲ့ function ကိုဖုန်းခေါ်ဆိုမှု stack အရေးပေါ်သိမ်းထားဖို့ကိုဖြစ်ပေါ်စေသည်, သို့မဟုတ် --profile option နဲ့အတူအမည်ရှိသမျှဖိုင်။ ထို့နောက် run ဖို့ရောက်နေပါတယ်။ SIGHUP ကပရိုဖိုင်းနဲ့ function ကိုဖုန်းခေါ်ဆိုမှု stack ပြီးတော့ထွက်ပေါက်အရေးပေါ်သိမ်းထားဖို့ကိုဖြစ်ပေါ်စေသည်။

ဥပမာများ

ပုံနှိပ်ပါအပေါင်းတို့နှင့်အသုံးပြုသူရဲ့ login အမည်များ sort: အစ {= FS ":"} {$ 1 Print | "မျိုး"} တစ်ဖိုင်ထဲမှာလိုင်းများ Count: {nlines ++} END သည် {ပုံနှိပ် nlines} ဖိုင်ကိုအတွက်၎င်း၏အရေအတွက်အားဖြင့်တစ်ဦးချင်းစီ line ကိုအရင်အဦးနေရာ: {ပုံနှိပ်ရော်ဘာ: {Concatenate FNR, $ 0} print ထုတ်ခြင်းနှင့်လိုင်းအရေအတွက်က (ကဆောင်ပုဒ်အပေါ်တစ်ဦးအပြောင်းအလဲ) $ 0}

International

string ရုံကလွဲပြီးနှစ်ဆကိုးကားအတွက်ပူးတွဲဇာတ်ကောင်များ၏ပာဖြစ်ကြသည်။ Non-အင်္ဂလိပ်စကားပြော enviroments မှာကဇာတိသဘာဝဘာသာစကားမှဘာသာပြန်ချက်လိုအပ်အဖြစ် AWK အစီအစဉ်တွင်ညှို့အထိမ်းအမှတ်ဖြစ်နိုင်ပါတယ်။ ထိုသို့သောညှို့တစ်ဦးဦးဆောင် underscore ( `` _ '') နှင့်အတူ AWK အစီအစဉ်တွင်မှတ်သားနေကြသည်။ ဥပမာ,

gawk '' {ပုံနှိပ်« hello, လောက "} အစ ''

အစဉ်အမြဲကမ္ဘာက, ဟဲလိုနေရိုက်ထုတ်။ ဒါပေမယ့်

gawk '' {ပုံနှိပ် _ "ဟဲလို, လောက"} အစ ''

bonjour ပြင်သစ်နိုင်ငံ Monde print ထုတ်ပါလိမ့်မယ်။

တစ်ဦး localizable AWK အစီအစဉ်ကိုထုတ်လုပ်ခြင်းနှင့်အပြေးတွင်ပါဝင်ပတ်သက်အများအပြားခြေလှမ်းများရှိပါတယ်။

1 ။

သင့်ရဲ့ program နဲ့ဆက်နွယ်နေတဲ့နာမတော်ကိုစာသားဒိုမိန်းသတ်မှတ်ထားဖို့ TEXTDOMAIN variable ကိုမှတန်ဖိုးတစ်ခုသတ်မှတ်ပေးရန်အစအရေးယူထည့်ပါ။


{TEXTDOMAIN = "myprog"} အစ

ဒါဟာသင့်ရဲ့ program နဲ့ဆက်စပ် .mo file ကိုရှာတွေ့မှ gawk ခွင့်ပြုပါတယ်။ ဒီခြေလှမ်းမရှိရင် gawk ဖွယ်ရှိသည်သင်၏အစီအစဉ်အတွက်ဘာသာမဆံ့မပါဘူးသောမက်ဆေ့ခ်ျကိုစာသားဒိုမိန်းအသုံးပြုသည်။

2 ။

မာကုဦးဆောင် underscores နှင့်အတူဘာသာပြန်ထားသောသင့်ကြောင်းအားလုံးကွိုး။

3 ။

လိုအပ်မယ်ဆိုရင်သင့်လျော်သောအတိုင်း, သင်တို့၏အစီအစဉ်သည်အတွက် dcgettext () နှင့် / သို့မဟုတ် bindtextdomain () function တွေကိုသုံးပါ။

4 ။

သင့်ရဲ့ program ကိုတစ်ခု .po file ကို generate မှ gawk --gen-po -f myprog.awk> myprog.po run လိုက်ပါ။

5 ။

သင့်လျော်သောဘာသာများကိုပေးစွမ်းနှင့်သက်ဆိုင်ရာ .mo file ကိုတည်ဆောက်ရန်နှင့်ထည့်သွင်းပါ။

ထိရောက်သော AWK Programming: အဆိုပါ internationalization ရ features တွေ GAWK အတွက်အပြည့်အဝအသေးစိတ်ဖော်ပြလေ့ရှိသည်။

Posix အသုံးပြုပုံများ

gawk များအတွက်တစ်ဦးကမူလတန်းရည်မှန်းချက် POSIX စံတွေနဲ့အဖြစ် UNIX တွင် awk ၏နောက်ဆုံးဗားရှင်းနဲ့လိုက်ဖက်မှုဖြစ်ပါတယ်။ ဒီအဆုံး, gawk အဆိုပါ AWK စာအုပ်ထဲတွင်ဖော်ပြထားပေမယ့် awk ၏ Bell Laboratories ဗားရှင်း၏အစိတ်အပိုင်းတစ်ခုဖြစ်ကြောင်း, နှင့် POSIX စံ၌ရှိကြ၏ကြသည်မဟုတ်သည့်အောက်ပါအသုံးပြုသူမြင်နိုင် features တွေထည့်သွင်း။

အဆိုပါစာအုပ် awk မဟုတ်ရင်အစအဦးပိတ်ပင်တားဆီးမှုကွပ်မျက်ခံရပြီးနောက်ဖြစ်သောဖိုင်တစ်ဖိုင်, အဖြစ်အငြင်းအခုံဖွင့်လှစ်မယ်လို့တဲ့အခါမှာ command line က variable ကိုတာဝနျကိုဖြစ်ပျက်ကြောင်းဖော်ပြသည်။ ထိုကဲ့သို့သောတာဝန်ကျတဲ့နေရာဘယ်ဖိုင်မဆိုအမည်များကိုရှေ့လာသောအခါအစအဦးပိတ်ပင်တားဆီးမှုကို run ခင်သို့သော်အစောပိုင်းကလပ်စအတွက်, တာဝန်ကိုဖြစ်ပျက်လိမ့်မယ်။ Applications ကိုဒီ `` အင်္ဂါရပ်အပေါ်မူတည်သို့ရောက်ကြ၏။ '' awk ယင်း၏စာရွက်စာတမ်းများကိုက်ညီဖို့အတွက်ပြောင်းလဲခဲ့သည်တဲ့အခါ, program ကိုကွပ်မျက်မခံရခင် variable တွေကိုတာဝန်ပေးဖို့များအတွက် -v option ကိုအဟောင်းကိုအပြုအမူတို့အပေါ်မှာမူတည်ကြောင်း applications များထားရှိရန်ထည့်သွင်းခဲ့သည်။ (ဤအင်္ဂါရပ် Bell Laboratories နှင့်ကို GNU developer များနှစ်ဦးစလုံးအားဖြင့်အပေါ်သို့သဘောတူညီခဲ့ကြသည်။ )

အကောင်အထည်ဖော်မှုတိကျတဲ့ features တွေများအတွက် -W option ကို POSIX စံကနေဖြစ်ပါတယ်။

ငြင်းခုံ၏အဆုံးအချက် '' '- အငွငျးပှား processing အခါ, gawk အထူး option ကို `` ကိုအသုံးပြုသည်။ compatibility mode မှာ, ကအကြောင်းသတိပေးထားပေမယ့်မဟုတ်ရင် undefined ရွေးချယ်စရာလျစ်လျူရှု။ ၎င်းကိုလုပ်ဆောင်ရန်များအတွက်သာမန်စစ်ဆင်ရေးများတွင်ထိုကဲ့သို့သောအငြင်းပွားမှုများအတွက် AWK အစီအစဉ်အပေါ်လွန်နေကြသည်။

အဆိုပါ AWK စာအုပ်) srand (များ၏ပြန်လာတန်ဖိုးကိုသတ်မှတ်မထားဘူး။ အဆိုပါ POSIX စံကကျပန်းနံပါတ်တစ်ခုပာခြေရာခံစောင့်ရှောက်ခွင့်ပြုပါရန်, အသုံးပြုခဲ့သည်အမျိုးအနွယ်ကိုပြန်လာပါတယ်။ ထို့ကြောင့် gawk အတွက် srand () ကိုလည်း၎င်း၏လက်ရှိအမျိုးအနွယ်ကိုပြန်လည်ရောက်ရှိ။

သည်အခြား feature သစ်များဖြစ်ကြသည်: (awk MKS မှ) မျိုးစုံ -f ရွေးချယ်စရာများအသုံးပြုမှု; ပတ်ဝန်းကျင်ခင်းကျင်း; အဆိုပါ \ တစ်ဦးနှင့် \ v ထွက်ပေါက်ပာ (gawk အတွက်မူလကပြုမိခြင်းနှင့်ပြန်လည် Bell Laboratories ဗားရှင်းသို့ကျွေးမွေး); အဆိုပါ tolower () နှင့် toupper (ထို Bell Laboratories ဗားရှင်းထံမှ) () built-in function တွေကို; နှင့် printf အတွက် ANSI C ကိုကူးပြောင်းသတ်မှတ်ချက်များကို (Bell Laboratories ဗားရှင်းအတွက်ပထမဦးဆုံးအပြုမိ) ။

သမိုင်းဆိုင်ရာအင်္ဂါရပ်များ

အထောက်အပံ့များ gawk ကြောင်းသမိုင်း AWK အကောင်အထည်ဖော်မှု၏နှစ်ခု features တွေရှိပါတယ်။ ပထမဦးစွာမအငြင်းအခုံနှင့်အတူ, ဒါပေမယ့်ပင်ကွင်းမပါဘဲမသာအရှည် () built-in function ကိုခေါ်ခြင်းဖြစ်နိုင်သမျှပါ! ထို့ကြောင့်,

တစ်ဦး = အလျား # သန့်ရှင်းသောဘုရား Algol 60, Batman,

၏တစ်ခုခုကိုအဖြစ်အတူတူပင်ဖြစ်ပါသည်

တစ်ဦး = အလျား ()
တစ်ဦး = အလျား ($ 0)

ဒီ feature `` ဟာ POSIX စံအတွက် '' ကန့်ကွက်ခံထားအဖြစ်မှတ်သားခြင်း, --lint က command line ပေါ်တွင်သတ်မှတ်ထားသောလျှင်ကိစ္စများသည်၎င်း၏အသုံးပြုမှုနှင့်ပတ်သက်ပြီးသတိပေး gawk ဖြစ်ပါတယ်။

အခြားအင်္ဂါရပ်ကိုဆက်လက်တစ်ခုသို့မဟုတ်စဉ်၏ခန္ဓာကိုယ်အပြင်ဘက်ချိုးထုတ်ပြန်ချက်များသည်သို့မဟုတ်ကွင်းဆက်ပြုပါဖြစ်စေ၏အသုံးပြုမှုသည်။ ရိုးရာ AWK Implementation ကိုလာမယ့်ထုတ်ပြန်ချက်နှင့်ညီမျှကဲ့သို့သောအသုံးပြုမှုကုသပါပြီ။ --traditional သတ်မှတ်ထားသောထားပြီးလျှင် Gawk ဒီအသုံးပြုမှုထောက်ခံပါတယ်။

ကို GNU Extensions

Gawk POSIX awk မှ extensions တွေကိုအတော်များများရှိပါတယ်။ သူတို့ကဒီအခန်းမှာဖော်ပြလေ့ရှိသည်။ ဤနေရာတွင်ဖော်ပြထားအားလုံးသည်တိုးချဲ့မှုများကို --traditional option နဲ့အတူ gawk သွန်းလောင်းပေးကပိတ်ထားနိုင်ပါတယ်။

gawk ၏အောက်ပါအင်္ဂါရပ်များ POSIX awk အတွက်ရရှိနိုင်မရှိကြပေ။

*

အဘယ်သူမျှမလမ်းကြောင်းကိုရှာ -f option ကိုမှတဆင့်အမည်ရှိဖိုင်များကိုဖျော်ဖြေနေသည်။ ထိုကြောင့် AWKPATH ပတ်ဝန်းကျင် variable ကိုအထူးမဟုတ်ပါဘူး။

*

အဆိုပါ \ x ကိုထွက်ပေါက် sequence ကို။ (--posix နှင့်အတူပိတ်ထား။ )

*

အဆိုပါ fflush () function ကို။ (--posix နှင့်အတူပိတ်ထား။ )

*

ပြီးနောက်လိုင်းများကိုဆက်လက်နိုင်စွမ်း? နှင့်။ (--posix နှင့်အတူပိတ်ထား။ )

*

Octal နှင့် AWK အစီအစဉ်များအတွက် hexadecimal ရုံကလွဲပြီး။

*

အဆိုပါ ARGIND, BINMODE, ERRNO, Plus ကို, RT နဲ့ TEXTDOMAIN variable တွေကိုအထူးမဟုတ်ပါဘူး။

*

အဆိုပါ IGNORECASE variable ကိုနှင့်၎င်း၏ဘေးထွက်ဆိုးကျိုးများမရရှိနိုင်မရှိကြပေ။

*

အဆိုပါ FIELDWIDTHS variable ကိုများနှင့်ပုံသေ-width ကိုလယ်ပြင်ပိုင်းခြား။

*

အဆိုပါ PROCINFO ခင်းကျင်းမရရှိနိုင်။

*

ပုံမှန်စကားရပ်အဖြစ် RS များအသုံးပြုမှု။

*

I / O redirection များအတွက်ရရှိနိုင်အထူးဖိုင်အမည်များကိုအသိအမှတ်ပြုမထားပေ။

*

အဆိုပါ | & အော်ပရေတာ Co-ဖြစ်စဉ်များအတွက်။

*

FS ၏တန်ဖိုးကဲ့သို့၎င်း, (ခွဲထွက်ဖို့တတိယအငြင်းအခုံအဖြစ်တရားမဝင်သော string ကိုသုံးပြီးတစ်ဦးချင်းစီဇာတ်ကောင်ထွက်ခွဲနိုင်စွမ်း)

*

အဆိုပါနီးစပ် () function ကိုရန် optional ကိုဒုတိယအငြင်းအခုံ။

*

အဆိုပါပွဲစဉ် () function ကိုရန် optional ကိုတတိယအငြင်းအခုံ။

*

printf နှင့် sprintf (နဲ့အတူ positional သတ်မှတ်ထားတဲ့သုံးစွဲဖို့စွမ်းရည်)

*

တစ်ခုခင်းကျင်း၏အကြောင်းအရာတစ်ခုလုံးကိုဖျက်ပစ်ရန်ဖျက်မှုကိုခင်းကျင်းများအသုံးပြုမှု။

*

လက်ရှိ input ကိုဖိုင်ရဲ့အပြောင်းအလဲနဲ့စွန့်ခွာဖို့ nextfile များအသုံးပြုမှု။

*

အဆိုပါနဲ့ (), asort (), bindtextdomain (), compl (), dcgettext (), gensub (), lshift (), mktime (), သို့မဟုတ် (), rshift (), strftime (), strtonum (), systime () နဲ့ xor () functions တွေ။

*

Localizable ကွိုး။

*

တိုးချဲ့မှု () function ကိုနှင့်အတူသည် dynamically အသစ်က built-in function တွေကိုထည့်သွင်းခြင်း။

အဆိုပါ AWK စာအုပ်နီးကပ် () function ကို၏ပြန်လာတန်ဖိုးကိုသတ်မှတ်မထားဘူး။ Gawk 's နီးကပ် () ကနေတန်ဖိုးပြန်လည်ရောက်ရှိ fclose အသီးသီးအနေနဲ့ output ကိုဖိုင်သို့မဟုတ်ပိုက်ပိတ်သည့်အခါ, (3) (3), ဒါမှမဟုတ် pclose ။ တစ်ဦး input ကိုပိုက်ပိတ်တဲ့အခါမှာဒါဟာလုပ်ငန်းစဉ်ရဲ့ထွက်ပေါက် status ကိုပြန်လည်ရောက်ရှိ။ အဆိုပါပြန်လာတန်ဖိုးကိုဖြစ်ပါတယ် -1 ပုအမည်ရှိသောဖိုင်, ပိုက်သို့မဟုတ် Co-ဖြစ်စဉ်ကိုတစ်ဦး redirection နှင့်အတူဖွင့်လှစ်မခံခဲ့ရပါ။

gawk အဆိုပါ --traditional option နဲ့အတူမဖြစ်၏ဖြစ်ပါတယ်အခါ -F option ကိုရန် fs အငြင်းအခုံ `` t ကို '' လျှင်, ထို့နောက် FS tab ကိုဇာတ်ကောင်ဟုသတ်မှတ်ထားသည်။ ကြောင်းစာရိုက် gawk -F \ t ကို ... ရိုးရိုးလေး 'shell ကိုပု `` t ကိုကိုးကားဖို့ကိုဖြစ်ပေါ်စေသည်' နှင့် `` \ t ကိုမလွန်ပါဘူး 'ဆိုတဲ့ -F option ကိုမှ' 'သတိပြုပါ။ ဒီအစားအရုပ်ဆိုးအထူးကိစ္စဖြစ်ပါတယ်ကတည်းကက default အနေနဲ့အပြုအမူမဟုတ်ပါဘူး။ --posix သတ်မှတ်ထားသောထားပြီးလျှင်ဒီအပြုအမူကိုလည်းဖြစ်ပေါ်မထားဘူး။ တကယ်လယ်ပြင် separator အဖြစ် tab ကိုဇာတ်ကောင်အရ, ကတစ်ခုတည်းကိုးကားသုံးစွဲဖို့အကောင်းဆုံးဖြစ်ပါသည်: -F '\ t ကို' 'gawk ...

: ကအခြား command များကိုကြည့်ရှုပါ စောင့်ဆိုင်း , lp , ပြည့်စုံ , execv , getfacl , ioctl , uniq , rmmod , pvcreate , rsh , unix2dos , ကယ်လိုရီ , fs , cd , iwpriv , swapon , autofs , ဟောပြောပွဲ , motd , အခမဲ့ , lpr , execl , fdisk , မှာ , အဘယ်သူသည် , iwconfig , ifconfig , vgdisplay , ပွင့်လင်း , lsmod , ntohs , mailq , ကိုသတ် , wtmp