ืืื ืืคืงืืื mawk ืฉื ืืชื ืืืคืขืื ืืกืคืง ืืืืจืื ืืืื ืื ืฉื OnWorks ืืืืฆืขืืช ืืืช ืืชืื ืืช ืืขืืืื ืืืงืืื ืืช ืืืจืืืืช ืฉืื ื, ืืืื Ubuntu Online, Fedora Online, ืืืืืืืจ ืืงืืื ืฉื Windows ืื ืืืืืืืจ ืืงืืื ืฉื MAC OS
ืชึธืึฐื ึดืืช:
ืฉืึตื
mawk - ืฉืคืช ืกืจืืงืช ืืคืืกืื ืืขืืืื ืืงืกื
ืชึทืงืฆึดืืจ
ืืืืง [-W ืืึนืคึผึฐืฆึดืึธื] [-F ืขืจื] [-v var=ืขืจื] [--] 'ืืงืกื ืชืืื ืืช' [ืงืืืฅ ...]
ืืืืง [-W ืืึนืคึผึฐืฆึดืึธื] [-F ืขืจื] [-v var=ืขืจื] [-f ืืกืื ืชืืื ืืช] [--] [ืงืืืฅ ...]
ืชืืืืจ
ืืืืง ืืื ืืชืืจืืื ืืฉืคืช ืืชืื ืืช AWK. ืฉืคืช AWK ืฉืืืืฉืืช ืขืืืจ
ืื ืืคืืืฆืื ืฉื ืงืืฆื ื ืชืื ืื, ืืืืืจ ืืขืืืื ืืงืกื, ืืื ืขืืืจ ืื ืืืคืืก ื
ืืืชื ืกืืช ืืืืืืจืืชืืื. ืืืืง ืืื ืืืฉ awk ืืืืืจ ืืื ืืืืฉื ืืช ืฉืคืช AWK
ืืืืืจืชื ื-Aho, Kernighan ื-Weinberger, ืืฉืืืื AWK ืชืื ืืช ืฉืคื, ืืืืกืื-ืืกืื
ืืืฆืื ืืืืจ, 1988. (ืืงืจื ืืืื ืกืคืจ AWK.) ืืืืง ืชืืื ืืช ื-Posix
ืืืืจื 1003.2 (ืืืืื 11.3) ืฉื ืฉืคืช AWK ืืืืืื ืืื ืชืืื ืืช ืฉืืื ื
ืืืชืืืจ ืืกืคืจ AWK, ื ืืืืง ืืกืคืง ืืกืคืจ ืงืื ืฉื ืืจืืืืช.
ืชืืื ืืช AWK ืืื ืจืฆืฃ ืฉื ืืคืืก {ืคืขืืื} ืืืืืช ืืืืืจืืช ืคืื ืงืฆืืืช. ืงืฆืจ
ืชืืื ืืืช ืืืื ืืช ืืฉืืจืช ืืคืงืืื ืืืืงืคืช ืืืจื ืืื ื' ' ืืื ืืื ืืข ืืขืืคืช
ืคืจืฉื ืืช. ื ืืชื ืืงืจืื ืชืืื ืืืช ืืจืืืืช ืืืชืจ ืืงืืืฅ ืขื ืืืคืฉืจืืช -f. ื ืชืื ืื
ืืงืื ื ืงืจื ืืจืฉืืืช ืืงืืฆืื ืืฉืืจืช ืืคืงืืื ืื ืืงืื ืจืืื ืืืฉืจ
ืืจืฉืืื ืจืืงื. ืืงืื ืืืืืง ืืจืฉืืืืช ืืคื ืฉื ืงืืข ืขื ืืื ืืคืจืื ืืจืฉืืืืช
ืืฉืชื ื, RS. ืืืชืืื, RS = "\n" ืืจืฉืืืืช ืื ืฉื ื ืจืืฃ ืืฉืืจืืช. ืื ืฉืื ืืื
ืืขืืืช ืื ืืื ืืคืืก ืืื ืื ืชืืื, ืืงืกื ืืชืืื ืืช ืขืืืจ {ืคืขืืื} is
ืืฆื ืืคืืขื.
ืืคืฉืจืืืืช
-F ืขืจื ืืืืืจ ืืช ืืคืจืื ืืฉืืืช, FS, ืืื ืขืจื.
-f ืคืืื ืืงืกื ืืชืืื ืืช ื ืงืจื ืคืืื ืืืงืื ืืฉืืจืช ืืคืงืืื. ืืจืืืืช
-f ืืืชืจืืช ืืคืฉืจืืืืช.
-v var=ืขืจื ืืงืฆื ืขืจื ืืชืื ืช ืืฉืชื ื ืืื.
-- ืืฆืืื ืืช ืืกืืฃ ืืื ืืฉืืขื ืฉื ืืคืฉืจืืืืช.
ืืืคืฉืจืืืืช ืืขืื ืืืื ืืืื ืืช ืขื ืื ืืืืืฉ ืชืืื Posix ืฉื AWK, ื
ืืงืืืืืช ืืคืฉืจืืืืช ืกืคืฆืืคืืืช ืืืืฉืื -W. ืืืืง ืืกืคืง ืฉืืฉื:
-W ืืจืกื ืืืืง ืืืชื ืืช ืืืจืกื ืืืืืืืช ืืืืฆืจืื ืฉืื ื-stdout ืืืืืืืช ืืืืืจ
stderr ืืืืฆื ื-0.
-W dump ืืืชื ืืกืืืืจ ืืื ืจืืฉืื ืฉื ืืืืฆืื ืืคื ืืื ืฉื
ืชืืื ืืช ื-stdout ืืืืฆืืช ื-0 (ืืงืืืคืืืฆืื ืืืฆืืืช).
-W ืืื ืืจืืงืืืืืช ืืืืืจื ืืชืืื ืื ืืืืืฆืช ื-stdout ืืงืจืืื ืืืืืกื ืช ืืฉืืจื ื-stdin.
ืจืฉืืืืช ื-stdin ืื ืฉืืจืืช ืืื ืงืฉืจ ืืขืจื ืฉื RS.
-W Exec ืคืืื ืืงืกื ืืชืืื ืืช ื ืงืจื ืคืืื ืืื ืืืคืฉืจืืช ืืืืจืื ื. ืฉืืืืฉื ืขื
ืืขืจืืืช ืืชืืืืืช ื #! ืืืกืืื ืฉื "ืืกืคืจ ืงืกื" ืืงืืืฅ ืืคืขืื
ืชืกืจืืืื.
-W sprintf=NUM ืืชืืื ืืช ืืืืื ืฉื ืฉื ืืืืง ืืืืจ sprintf ืคื ืืื ื NUM ืืชืื. ืืืชืจ ื
ืฉืืืืฉ ื ืืืจ ืืืคืฉืจืืช ืื ืืขืื ืืืืง ืฆืจืื ืืืืืืจ ืืืืฉ.
-W posix_space forces ืืืืง ืื ืืืชืืืืก ื'\n' ืืืจืื.
ืืืคืกืื ืืงืฆืจืื -W[vdiesp] ืืืืืื ืืืืขืจืืืช ืืกืืืืืช -We ืืืื ืืืืื ืข
ืืืืืืช ืืืจื ืฉืืจืช ืืคืงืืื.
LA AWK ืฉืึธืคึธื
1. ืชึธืึฐื ึดืืช ืึดืึฐื ึถื
ืชืืื ืืช AWK ืืื ืจืฆืฃ ืฉื ืืคืืก {ืคืขืืื} ืืืืืช ืืืืืจืืช ืคืื ืงืฆืืืช ืืฉืชืืฉ.
ืืคืืก ืืืื ืืืืืช:
ืืชืื
ืืกืืฃ
ืืืืื
ืืืขื, ืืืขื
ืืื, ืืื ืื ืฉื ืืื, ืฉื ืืคืืก {ืคืขืืื} ื ืืชื ืืืฉืืื. ืื {ืคืขืืื} ืืืฉืื ืื ืื
ืืืจืืื { ืืืคืก }. ืื ืืคืืก ืืืฉืื, ืื ืืื ืืืชืื ืืืืคื ืืจืืื. ืืชืื ื
ืืกืืฃ ืืคืืกืื ืืืจืฉืื ืคืขืืื.
ืืฆืืจืืช ืืกืชืืืืืช ืืฉืืจืืช ืืืฉืืช, ื ืงืืื-ืคืกืืง ืื ืฉื ืืื. ืงืืืฆืืช ืฉื ืืฆืืจืืช ืืืื
ืคืขืืืืช ืื ืืืคื ืืืืื ื ืืกืืื ืืืืฆืขืืช { ... } ืืื ื-C. ืืืฆืืจื ืืืืจืื ื ืืืืืง
ืื ืฆืจืื ืืจืืื ืืืจ. ืืฉืืจืืช ืจืืงืืช ืืื ืืฉืืขืืช; ืืฆืืจื ืจืืงื ืืกืชืืืืช
ืขื ื ืงืืื-ืคืกืืง. ื ืืชื ืืืืฉืื ืืืฆืืจืืช ืืจืืืืช ืขื ืงื ื ืืื ืืืืจื, \. ืืฆืืจื ืืืืื
ืืืืฉืืจ ืืื ืงื ื ืืื ืืืืจื ืืืืจ ืคืกืืง, ืกืืืจ ืฉืืืื, &&, ||, do, ืืืจ, ืื ืืื
ืกืืืจืืื ืฉื ื if, ืืืื or ื ืืฉืคื, ืืืกืืืจืืื ืืืื ืืื ืฉื ืคืื ืงืฆืื
ืึทืืึธืจึธื. ืืขืจื ืืชืืืื ื-# ืืืชืจืืืช ืขื, ืื ืืื ื ืืืืืช ืืช ืกืืฃ ืืฉืืจื.
ืืืฆืืจืืช ืืืืืช ืฉืืืืืช ืืืจืืืช ืืชืืื ืืช ืืชืื ืืืืงืื.
if ( ืืืืื ) ืืฆืืจื
if ( ืืืืื ) ืืฆืืจื ืืืจ ืืฆืืจื
ืืืื ( ืืืืื ) ืืฆืืจื
do ืืฆืืจื ืืืื ( ืืืืื )
ื ( opt_expr ; opt_expr ; opt_expr ) ืืฆืืจื
ื ( ืืื in ืืขืจื ) ืืฆืืจื
ืืืืฉืื
ืืฉืืืจ
2. ื ืชืื ืื ืกืืืื, ืืืจื ื ืืฉืืืื
ืืฉื ื ืฉื ื ืกืืื ื ืชืื ืื ืืกืืกืืื, ืืกืคืจื ืืืืจืืืช. ืงืืืขืื ืืกืคืจืืื ืืืืืื ืืืืืช ืืื ืืกืคืจืื ืฉืืืื
-2, ืขืฉืจืื ื ืืื 1.08, ืื ืืกืืืื ืืืขื ืืื -1.1e4 ืื .28E-3. ืื ืืืกืคืจืื ืื
ืืืืฆื ืคื ืืื ืืื ืืืืฉืืืื ื ืขืฉืื ืืืจืืชืืืืงื ืฉื ื ืงืืื ืฆืคื. ืื ืืฉืืื
ืืืืืื, ืืืืืื 0.2e2 == 20 ื ืืื ื-true ืืืืฆื ื-1.0.
ืงืืืขื ืืืจืืืช ืืืงืคืื ืืืืจืืืืช ืืคืืืืช.
"ืื ืืืจืืืช ืขื ืฉืืจื ืืืฉื ืืกืืฃ.\n"
ื ืืชื ืืืืฉืื ืืืจืืืืช ืขื ืคื ื ืงื ืขื-ืืื ืืจืืื (\) ืืืฉืืจื ืืืืฉื. ืืืจืืื ืืืื
ืจืฆืคืื ืืืืืื.
\\\
\" "
ืืชืจืื, ascii 7
\b backspace, ascii 8
\t tab, ascii 9
\n ืฉืืจื ืืืฉื, ascii 10
\v ืืจืืืกืืื ืื ืืืช, ascii 11
\f formfeed, ascii 12
ืืืืจืช ืืจืืจื, ascii 13
\ddd 1, 2 ืื 3 ืกืคืจืืช ืืืงืืืืืช ืขืืืจ ascii ddd
\xhh 1 ืื 2 ืกืคืจืืช hex ืขืืืจ ascii hh
ืื ืืชื ืืืจื ืืื ืชื ืืืจ \c, ืืชื ืืงืื \c, ืืืืืจ, ืืืืง ืืชืขืื ืืืืจืืื.
ืืฉ ืืืืช ืฉืืืฉื ืกืืื ื ืชืื ืื ืืกืืกืืื; ืืฉืืืฉื ืืื ืืกืคืจ ื ืืืจืืืช ืฉืืฉ ืื ืื ื
ืขืจื ืืกืคืจื ืืขืจื ืืืจืืืช ืื-ืืื ืืช. ืืฉืชื ืื ืืืืืืจืื ืขื ืืื ืืืฉืชืืฉ ื ืื ืกืื
ืงืืื ืืืฉืจ ืืชืืืืกืื ืืจืืฉืื ื ืืืืืืืื ื ืจืืง, ืืกืคืจ ืืขืจื ืืืจืืืช
ืืขื ืขืจื ืืกืคืจื 0 ืืขืจื ืืืจืืืช "". ื ืชืื ืื ืื ืืจืืืืืืืืื ืืืืงืืืื ืืืืจืืืช
ืืืืขืื ืืงืื ืืืืืืกื ืื ืืืจื ืืื ืืฉืืืช. (ืจืื ืกืขืืฃ 4).
ืกืื ืืืืืื ื ืงืืข ืขื ืคื ืืืงืฉืจ ืฉืื ืืืืจืช ืืกืื ืืืืืืืืืช
ืืชืจืืฉ ืืืืืช ืืฆืืจื. ืืืฉื, ืืืขืจืื ืืช ืืืฆืืจืืช
y = x + 2; z = x "ืฉืืื"
ืืขืจื ืืืืืืกื ืืืฉืชื ื y ืืืงืื ืืกืคืจื. ืื x ืืื ื ืืกืคืจื, ืืขืจื ื ืงืจื
ื-x ืืืืจ ืืืกืคืจื ืืคื ื ืฉืืื ืืชืืืกืฃ ื-2 ืืืืืืกื ื-y. ืืขืจื ืืืืืืกื
ืืืฉืชื ื z ืืืงืื string, ืืืขืจื ืฉื x ืืืืจ ื-string if
ื ืืืฅ ืืืฉืืจืฉืจ ืขื "ืฉืืื". (ืืืืื, ืืขืจื ืืืกืื ืืืืืืกื ืื ื-x ืื
ืื ืืฉืชื ื ืขื ืืื ืืืจืืช ืืืฉืื.) ืืืืื ืืืจืืืช ืืืืจ ืืืกืคืจื ืืืืฆืขืืช ืืืืืื ืฉืื
ืืงืืืืืช ืืืกืคืจืืช ืืืจืืื ืืืืชืจ ืืื ืขื ืืืืค(3). ืืืืื ืืกืคืจื ืืืืจ ืืืืจืืืช ืขื ืืื
ืืืืคื ืืืืื ืขื sprintf(CONVFMT, ืืืืื), ืืื ืื ืื ืืืืื ืืืื ืืืืืช ืืืืฆื ืขื ืืืืจื
ืืืื ื ืืืกืคืจ ืฉืื ืืืืืง ืืื ืืื ืืืืจ ืกืคืจืื ืืฃ("%d", ืืืืื). Sprintf() ืืื
AWK ืืืื ื ืืืฉืืคื ืืช ืืคืื ืงืฆืืื ืืืืช ืฉื ืกืคืจืื ืืฃ(3), ื CONVFMT ืืื ืืืื ื
ืืฉืชื ื ืืืฉืืฉ ืืืืจื ืคื ืืืืช ืืืกืคืจ ืืืืจืืืช ืืืืืื ื-%6g.
ื ืืชื ืืืคืืช ืืืจืืช ืืกืื ืืคืืจืฉ, ืืืืื "" ืืื ืืืจืืืช ื ืืืืื+0 ืืื ืืกืคืจื.
ืืืขืจืื, ืืืืื1 ื ืืชืื ืืืืจ ืืืืื2, ืื ืฉื ื ืืืืคืจื ืืื ืื ืืกืคืจืืื ืื ืืกืคืจ ืืืืจืืืช ืื
ืืืฉืืืื ืืื ืืกืคืจืืช; ืื ืฉื ื ืืืืคืจื ืืื ืื ืืืจืืืช ืืืฉืืืื ืืื ืืืจืืืช; ืื ืืื
ืืืืคืจื ื ืืื ืืืจืืืช, ืืืืคืจื ื ืืื-ืืืจืืืช ืืืืจ ืืืืฉืืืื ืืื ืืืจืืืช. ื
ืืชืืฆืื ืืื ืืกืคืจืืช, 1 ืื 0.
ืืืงืฉืจืื ืืืืืื ืืื ืืืื, if ( ืืืืื ) ืืฆืืจื, ืืืืื ืืืจืืืช ืืขืจืื true if
ืืจืง ืื ืื ืื ืืืืจืืืช ืืจืืงื ""; ืขืจืืื ืืกืคืจืืื ืื ืืจืง ืื ืื ืืืืคื ืืกืคืจื
ืืคืก.
3. ืจืืื ืืืืืืื
ืืฉืคืช AWK, ืจืฉืืืืช, ืฉืืืช ืืืืจืืืืช ื ืืืงืืช ืืขืชืื ืงืจืืืืช ืืืชืืื ื-a ืจืืื
ืืืืื. ืืืืืืื ืจืืืืจืืื ืืืงืคืื ืืืืืกืื ืื, ื
ืืืืื ~/r/
ืืื ืืืืื AWK ืืืืขืจื ื-1 if ืืืืื "ืืชืืืืช" r, ืืืืืจ ืืืจืืืช ืืฉื ื ืฉื
ืืืืื ื ืืฆื ืืงืืืฆืช ืืืืจืืืืช ืืืืืืจืืช ืขื ืืื r. ืืื ืืชืืื ืืืืืื ืืืขืจื ื-0;
ืืืืคืช ~ ืืืืคืจืืืจ "ืื ืชืืื", !~ , ืืืคืืช ืืช ืืืฉืืขืืช. ืืืคืืก-ืคืขืืื
ืืืืืช,
/r/ { ืคืขืืื } ื $0 ~/r/ { ืคืขืืื }
ืืืื, ืืืื ืจืฉืืืช ืงืื ืืชืืืืช r, ืคืขืืื ืืืฆื ืืืืจื. ืืืขืฉื, /r/
ืืื ืืืืื AWK ืฉืืงืืื ื($0 ~/r/) ืืื ืืงืื ืืืื ืืืฉืจ ืืฆื ืืืื
ืฆื ืฉื ืืืคืจืืืจ ืืชืืื ืื ืืืขืืจ ืืืจืืืื ื ืืคืื ืงืฆืื ืืืื ืืช ืฉืืฆืคื ื- a
ืืืขืื ืืืืื ืจืืื.
AWK ืืฉืชืืฉ ืืืืืืืื ืจืืืืจืืื ืืืจืืืื ืืื ืขื egrep(1). ืืืืืื ืืจืืืืจื
ืืื-ืชืืืื, ืืืืืจ, ืืขืื ืืฉืืขืืช ืืืืืืช ืืืืืืืื ืจืืืืจืืื ืื
^ $ . [ ] | ( ) * + ?
ืืืืืืื ืจืืืืจืืื ืื ืืืื ืืชืืืื ืืืืคื ืืื:
c ืืชืืื ืืื ืชื ืฉืืื ื ืืื c.
\c ืชืืื ืชื ืืืืืืจ ืขื ืืื ืืืชื ืจืฆืคื ืืจืืื ืืืฉืืฉืื ื
ืงืืืขื ืืืจืืืช ืื ืืชื ืืืืืืื c ืื \c ืืื ื ืืจืืื
ืกืืจ ืคืขืืืืช.
. ืืชืืื ืืื ืชื (ืืืื ืงื ืืืฉ).
^ ืชืืื ืืช ืืืืง ืืงืืื ืฉื ืืืจืืืช.
$ ืชืืื ืืืืง ืืืืืจื ืฉื ืืืจืืืช.
[c1c2c3...] ืืชืืื ืืื ืชื ืืืืืงื c1c2c3... . ืืจืืื ืฉื
ืชืืืื ืืกืืื ืื c1-c2 ืืชืื ืืืืงื [...].
[^c1c2c3...] ืชืืื ืืื ืชื ืฉืืื ื ืืืืืงื c1c2c3...
ืืืืืืื ืจืืืืจืืื ืื ืืืื ืืืืืืืื ืจืืืืจืืื ืืืจืื ืืืืคื ืืื:
r1r2 ืืชืืืืช r1 ืืืืจืื ืืื r2 (ืฉืจืฉืืจ).
r1 | r2 ืืชืืืืช r1 ืื r2 (ืืกืืจืืืื).
r* ืืชืืืืช r ืืืืจ ืขื ืืคืก ืื ืืืชืจ ืคืขืืื.
r+ ืืชืืืืช r ืืืืจ ืขื ืขืฆืื ืคืขื ืืืช ืื ืืืชืจ.
r? ืืชืืืืช r ืืคืก ืื ืคืขื ืืืช.
(r) ืืชืืืืช r, ืืชื ืงืืืืฅ.
ืืขืืืคืืช ืืืืืจืช ืฉื ืืืคืจืืืจืื ืืื ืืืืืคืื, ืฉืจืฉืืจ ื-unary (*, + ืื
?).
ืืืืืื,
/^[_a-zA-Z][_a-zA-Z0-9]*$/ ื
/^[-+]?([0-9]+\.?|\.[0-9])[0-9]*([eE][-+]?[0-9]+)?$/
ืืืชืืืื ืขื ืืื ืืืื AWK ืืงืืืขืื ืืกืคืจืืื AWK ืืืชืืื. ืฆืืื ืืืช . ืฆืจืื
ืืืืืื ืืื ืืืืืช ืืืืจ ืื ืงืืื ืขืฉืจืื ืืช, ืืื ืชืืืื ืืื ืืื ื ืืืืืืื
ืืชืื ืฉืืขืืจื ืืืคื.
ื ืืชื ืืืฉืชืืฉ ืืื ืืืืื ืืฆื ืืืื ืฉื ืืืืคืจืืืจืื ~ ืื !~ ืื ืืืขืืืจ ื-a
ืืืื ื ืฉืืฆืคื ืืืืืื ืจืืืืจื. ืืืืืช ืืฆืืจื, ืืื ืืืืจ ืืืืจืืืช, ื
ืืื ืืชืคืจืฉ ืืืืืื ืจืืืืจื. ืืืืืื,
ืืชืื { ืืืื = "[_a-zA-Z][_a-zA-Z0-9]*" }
ืืืื $0 ~ "^".
ืืืคืืก ืืช ืื ืืฉืืจืืช ืฉืืชืืืืืช ืืืืื AWK.
ืืืืง ืืืื ืืช ืืืืืื ืืจืืืืจื ืืจืืง, //, ืืชืืื ืืช ืืืืจืืืช ืืจืืงื ืืืืื
ืืืชืื ืืื ืืืชืจ ืืืืืช, ืืืืืจ ืืืื ืื ืชื. ืืืืืื,
echo abc | mawk { gsub(//, "X"); ืืืคืก }
XaXbXcX
4. ืจืฉืืืืช ื ืฉืืืช
ืจืฉืืืืช ื ืงืจืืืช ืืืช ืืื ืคืขื, ืืืืืืกื ืืช ื- ืฉืื ืืฉืชื ื $0. ืืฉืื ืืื
ืืืชืคืฆื ืืชืื ืฉืืืช ืืฉืจ ืืืืืกื ืื ื $1, $2, ..., $NF. ืืืฉืชื ื ืืืืื ื NF ืืืืืจ
ืืืกืคืจ ืืฉืืืช, ื NR ื FNR ืืืืืืื ื-1. ืฉืืืช ืืืขืื $NF ื ืงืืขืื
"".
ืืฉืืื ื $0 ืืืจื ืืฉืืืช ื NF ืืืฉื ืืืืฉ. ืืฉืืื ื NF ืื ืื
ืืืจื ืฉืื $0 ืืฉืืืืจ ืขื ืืื ืฉืจืฉืืจ ืฉื ืฉื $i ืืืคืจืืื ืขื ืืื FSO.
ืืงืฆืื ืืฉืื ืขื ืืื ืืงืก ืืืื ื NF, ืขืืื NF ืืืืจืืื $0 ืืืืืช
ืึฐืฉืืึผืืึธืจ.
ืงืื ืื ืชืื ืื ืืืืืืกื ืื ืืฉืืืช ืืื ืืืจืืืช, ืืื ืื ืืฉืื ืืืื ืืขื ืฆืืจื ืืกืคืจืืช ืืืืืจ ืืื
ืืกืื ืืื ืืกืคืจ ืืืืจืืืช. ืืืืืื,
echo 24 24E |
mawk '{ print($1>100, $1>"100", $2>100, $2>"100") }'
0 1 1 1
$0 ื $2 ืื ืืืจืืืช ื $1 ืืื ืืกืคืจ ืืืืจืืืช. ืืืฉืืืื ืืจืืฉืื ื ืืื ืืกืคืจืืช, ื
ืืฉื ื ืืื ืืืจืืืช, ืืฉืืืฉื ืืื ืืืจืืืช (100 ืืืืจ ื-"100"), ืืืืืจืื ืืื ืืืจืืืช.
5. ืืืืืืื ื ืืคืขืืื
ืชืืืืจ ืืืืืื ืืืื ื-C. ืืืืืืื ืจืืฉืื ืืื ืื ืงืืืขืื ืืกืคืจืืื, ืืืจืืืช
ืงืืืขืื, ืืฉืชื ืื, ืฉืืืช, ืืขืจืืื ืืงืจืืืืช ืคืื ืงืฆืืืช. ืืืืื ืฉื ืืฉืชื ื,
ืืขืจื ืื ืคืื ืงืฆืื ืืืืืื ืืืืืช ืจืฆืฃ ืฉื ืืืชืืืช, ืกืคืจืืช ืืงืืืื ืชืืชืื ืื, ืฉืื
ืืืชืืื ืืกืคืจื. ืืฉืชื ืื ืืื ื ืืืฆืืจืื; ืื ืงืืืืื ืืืฉืจ ืืชืืืืกืื ืืืืื ืืจืืฉืื ื ืืื ืงืืืืื
ืืืืชืื ื ืจืืง.
ืืืืืืื ืืืฉืื ืืืจืืืื ืขื ืืืืคืจืืืจืื ืืืืื ืืคื ืกืืจ ืืืืื
ืขึฒืึดืืคืึผืช.
ืืฉืืื = += -= *= /= %= ^=
ืืืชื ื ? :
ืืืืื ื or ||
ืืืืื ื ื &&
ืืขืจื ืึฒืึตืจืึผืช in
ืชืืื ~!~
ืืืกืืืช < > <= >= == !=
ืฉืจืฉืืจ (ืืื ืืคืขืื ืืคืืจืฉ)
ืืืืกืืฃ ops + -
ืืื ops * /%
ืืื ืืจื + -
ืืืืื ื ืึนื !
ืืงืกืคืื ื ืฆืื ^
inc ื ืืฆืืืจ ++ -- (ืื ืคืืกื ืืื ืงืื)
ืฉืื $
ืืงืฆืื, ืชื ืื ืืืงืกืคืื ืฆืื ืืงืฉืจืื ืืื ืืืื ืืฉืืื; ืืืคืขืืืื ืืืืจืื
ืืงืฉืจ ืืฉืืื ืืืืื. ื ืืชื ืืกืื ืื ืืืืื ืืกืืืจืืื.
6. ืืขืจืืื
Awk ืืกืคืง ืืขืจืืื ืื ืืืืืืื. ืจืืืื ืืขืจื ืืืื ืืืื ืืืืื ื ืืขืจื[ืืืืื]. ืืคืง
ืืืืจ ืืืืคื ืคื ืืื ืืกืื ืืืจืืืช, ืื, ืืืฉื, A[1] ื-A["1"] ืืืื
ืืืื ื ืืืืื ืืงืก ืืคืืขื ืืื "1". ืืขืจืืื ืฉืืืกืืคืื ืืืื ืืงืก ืขื ืืื ืืืจืืืืช ื ืงืจืืื ืืกืืฆืืืืืืืื
ืืขืจืืื. ืืชืืืื ืืขืจื ืจืืง; ืจืืืืื ืงืืืืื ืืขืช ืืืืฉื ืืืืื ืืจืืฉืื ื. ืืืืื,
ืืืืื in ืืขืจื ืืืขืจื ื-1 if ืืขืจื[ืืืืื] ืงืืื, ืืืจืช ื-0.
ืืฉ ืฆืืจื ืฉื ื ืืฆืืจื ืฉืขืืืจืช ืืืืืื ืขื ืื ืืื ืืงืก ืฉื ืืขืจื.
ื ( ืืื in ืืขืจื ) ืืฆืืจื
ืกืืื ืืื ืืื ืืื ืฉื ืืขืจื ืืืืฆืขืช ืืฆืืจื. ืืกืืจ ืฉ ืืื ืจืืืืืื
ืืืืืื ืฉื ืืขืจื ืืื ื ืืืืืจ.
ืืืฆืืจื, ืืืกืืจ ืืขืจื[ืืืืื], ืืืจื ื ืืขืจื[ืืืืื] ืื ืืืชืงืืื. ืืืืง ืชืืื ื-
ืกืืืืช, ืืืกืืจ ืืขืจื, ืืฉืจ ืืืืง ืืช ืื ืืจืืืืื ืฉื ืืขืจื.
ืืขืจืืื ืจื ืืืืืืื ืืกืื ืชืืื ืขื ืฉืจืฉืืจ ืืืืฆืขืืช ืืืฉืชื ื ืืืืื ื
SUBSEP. ืืขืจื[ืืืืื1,ืืืืื2] ืฉืืื ืขืจื ื ืืขืจื[ืืืืื1 SUBSEP ืืืืื2]. ืืืืงื ืขืืืจ ื
ืืืื ื ืจื ืืืื ืืฉืชืืฉ ืืืื ืืงืก ืืกืืืจืืื, ืืืื
if ((i, j) ื-A ) ืืืคืก A[i, j]
7. ืืฉืชื ืื ืืืื ืื
ืืืฉืชื ืื ืืืืื ืืืื ืื ืืืืืืืื ืืคื ื ืืคืขืืช ืืชืืื ืืช.
ARGC ืืกืคืจ ืืจืืืื ืืื ืฉื ืฉืืจืช ืืคืงืืื.
ARGV ืืขืจื ืืจืืืื ืืื ืฉื ืฉืืจืช ืืคืงืืื, 0..ARGC-1.
CONVFMT ืคืืจืื ืืืืจื ืคื ืืืืช ืฉื ืืกืคืจืื ืืืืจืืืช, ืืืชืืื = "%.6g".
ืขื ืืืืืช ืืขืจื ืืืื ืืงืก ืขื ืืื ืืฉืชื ื ืกืืืื. ืืืจืืืช ืกืืืื, var=ืขืจื
ืืืืืกื ื- ืขื ืืืืืช[ืืื] = ืขืจื.
ืฉื ืงืืืฅ ืฉื ืงืืืฅ ืืงืื ืื ืืืื.
FNR ืืกืคืจ ืืฉืื ืื ืืืื ื ืฉื ืงืืืฅ.
FS ืืคืฆื ืจืฉืืืืช ืืฉืืืช ืืืืืื ืจืืืืจื.
NF ืืกืคืจ ืืฉืืืช ืืจืฉืืื ืื ืืืืืช.
NR ืืกืคืจ ืืฉืื ืื ืืืื ืืืจื ืืงืื ืืืืื.
OFMT ืคืืจืื ืืืืคืกืช ืืกืคืจืื; ืืืชืืื = "%.6g".
FSO ืืืื ืก ืืื ืฉืืืช ืืคืื, ืืชืืืื = " ".
ORS ืืกืืื ืื ืจืฉืืื ืืคืื, ืืชืืืื = "\n".
RLENGTH ืืืจื ืฉื ืงืืข ืขื ืืื ืืงืจืืื ืืืืจืื ื ืืคืื ืงืฆืื ืืืืื ืืช, ืืชืืื().
RS ืืคืจืื ืจืฉืืืืช ืงืื, ืืืชืืื = "\n".
RSTART ืืื ืืงืก ืฉื ืงืืข ืขื ืืื ืืฉืืื ืืืืจืื ื ืื ืืชืืื().
SUBSEP ืืฉืืฉ ืืื ืืืช ืืขืจืืื ืืจืืืื, ืืชืืืื = "\034".
8. Built-in ืคืื ืงืฆืืืช
ืคืื ืงืฆืืืช ืืืจืืืช
gsub(r,s,t) gsub(ืจ, ืก)
ืืืืคื ืืืืืืืช, ืื ืืชืืื ืฉื ืืืืื ืจืืืืจื r ืืืฉืชื ื t is
ืืืืืฃ ืืืืจืืืช s. ืืกืคืจ ืืืืืคืืช ืืืืืจ. ืื t is
ืืืฉืื, $0 ืืฉืืฉ. & ืืืืจืืืช ืืืืืคื s ืืืืืฃ ื-
ืืืจืืืช ืืฉื ื ืชืืืืช ืฉื t. \& ื-\\ ืืื ืืกืื ืืืืืืืช & ื-\, ืืืชืืื
ืืืจืืืช ืืืืคื.
ืืื ืืงืก(ืจืืื)
If t ืืื ืชืฉืชืืช ืฉื s, ืืื ืืืืงืื ืฉืื t ืืชืืืืื ืืืืืจืื, ืืืจืช
0 ืืืืืจ. ืืืืืช ืืจืืฉืื ื ืฉื s ื ืืฆื ืืขืืื 1.
ืืืจื(s)
ืืืืืจื ืืช ืืืจื ืืืืจืืืช s.
ืืชืืื(s,r)
ืืืืืจื ืืช ืืืื ืืงืก ืฉื ืืืชืืื ืืืจืืื ืืืืชืจ ืฉื ืืืืื ืจืืืืจื r in
ืืืจืืืช s. ืืืืืจื 0 ืื ืืื ืืชืืื. ืืชืืจ ืชืืคืขืช ืืืืื, RSTART ืืืืืจ ื
ืขืจื ืืืืจื. RLENGTH ืืืืืจ ืืืืจื ืืืชืืื ืื -1 ืื ืืื ืืชืืื.
ืื ืืืืจืืืช ืืจืืงื ืชืืืืช, RLENGTH ืืืืืจ ื-0, ื-1 ืืืืืจ ืื
ืืืคืจืืจ ืืื ืืืืืช, ืืืืืจื(s)+1 ืืืืืจ ืื ืืืชืืื ืืื ื
ืืื.
ืึฐืคึทืฆึตื(s,A,r) ืืคืฆื(ืก,ื)
ืืืจืืืช s ืืคืืฆื ืืฉืืืช ืขื ืืื ืืืืื ืจืืืืจื r ืืืฉืืืช ืื
ื ืืขื ืืืขืจื A. ืืกืคืจ ืืฉืืืช ืืืืืจ. ืจืื ืกืขืืฃ 11
ืืืื ืืคืจืืื ื ืืกืคืื. ืื r ืืืฉืื, FS ืืฉืืฉ.
sprintf (ืคืืจืื, expr-list)
ืืืืืจื ืืืจืืืช ืืื ืืื ื expr-list ืขื ืคื ืคืึผืจืึธื. ืจืื ืืช
ืชืืืืจ ืฉื printf() ืืืื.
ืชึทืช(r,s,t) ืชืช(ืจ, ืก)
ืืืืคื ืืืืืช, ืืื ื-gsub() ืืืขื ืืืืคื ืืืช ืืื ืืืืชืจ.
substr(ืืื) substr(ืกึดื)
ืืืืืจื ืืช ืืืืจืืืช ืืืฉื ื ืฉื ืืืืจืืืช s, ืืื ืืืื ืืงืก i, ืืืืจื n. ืื n
ืืืฉืื, ืืกืืืืช ืฉื s, ืืชืืื ื i ืืืืืจ.
ืืื ืืื(s)
ืืืืืจ ืขืืชืง ืฉื s ืขื ืื ืืชืืืื ืืืืืืื ืืืืืจืื ืืืืชืืืช ืงืื ืืช.
ืืืขืื (s)
ืืืืืจ ืขืืชืง ืฉื s ืขื ืื ืืชืืืื ืืงืื ืื ืืืืจืื ืืืืชืืืช ืืืืืืช.
ืคืื ืงืฆืืืช ืืจืืชืืืืืช
atan2(y,x) ืืจืงืื ืฉื y/x ืืื -pi ื-pi.
cos (x) ืคืื ืงืฆืืืช ืงืืกืื ืืก, x ืืจืืืื ืื.
exp (x) ืคืื ืงืฆืื ืืขืจืืืืช.
int (x) ืืืืจืืช x ืงืืืข ืืืืืื ืืคืก.
ืขึตืฅ(x) ืืืืจืืชื ืืืขื.
rand() ืืืืืจื ืืกืคืจ ืืงืจืื ืืื ืืคืก ืืืื.
ืืื(x) ืคืื ืงืฆืืืช ืกืื ืืก, x ืืจืืืื ืื.
sqrt(x) ืืืืืจื ืฉืืจืฉ ืจืืืืขื ืฉื x.
srand(ืืืืื) srand()
ืืจืขืื ืืช ืืืืื ืืืกืคืจืื ืืืงืจืืืื, ืืืืฆืขืืช ืืฉืขืื ืื ืืืืื ืืืฉืื, ื
ืืืืืจื ืืช ืืขืจื ืฉื ืืืจืข ืืงืืื. ืืืืง ืืืจืข ืืช ืืืกืคืจ ืืืงืจืื
ืืืืื ืืืฉืขืื ืืืชืืื ืื ืฉืืื ืฆืืจื ืืืืชื ืืืชืงืฉืจ
srand(). ืกืจื ื(ืืืืื) ืฉืืืืฉื ืืืืจื ืขื ืจืฆืคืื ืคืกืืืื ืืงืจืืืื.
9. ืงึถืึถื ื ืชืคืืงื
ืืฉื ื ืฉืชื ืืฆืืจืืช ืคืื, ืืืคืกื ื ืืืคืก.
ืืืคืก ืืืชื $0 ORS ืืชืคืืงื ืจืืืื.
ืืืคืกื ืืืืื1, ืืืืื2,..., ืืืืืn
ืืืชื ืืืืื1 FSO ืืืืื2 FSO ... ืืืืืn ORS ืืคืื ืกืื ืืจืื. ืืกืคืจื
ืืืืืืื ืืืืจืื ืืืืจืืืช ืขื OFMT.
ืืืคืก ืคืึผืจืึธื, expr-list
ืืฉืืคื ืืช ืืคืื ืงืฆืื printf C ืกืคืจืืืช ืืชืืืช ืืคืื ืกืื ืืจืื. ื
ืืคืจืื ืคืืจืื ANSI C ืืืืื ืืืืืื ืขื ืืืจืืช %c,
%d, %e, %E, %f, %g, %G, %i, %o, %s, %u, %x, %X ื-%%, ืืืืจื
ืืืงืืืืช h ื-l.
ืจืฉืืืช ืืืจืืืื ืืื ืืืืคืกื ืื printf ืืืืื ืืืืืช ืืืงืคืช ืืกืืืจืืื. ืืืคืก
ืคืืจืื ืืกืคืจืื ืืืืฆืขืืช OFMT ืื "%d" ืขืืืจ ืืกืคืจืื ืฉืืืื ืืืืืงืื. "%c" ืขื ืืจืืืื ื ืืกืคืจื
ืืืคืืก ืืช ืืชื ืืืชืืื ืฉื 8 ืกืืืืืช, ืขื ืืจืืืื ื ืืืจืืืช ืืื ืืืคืืก ืืช ืืจืืฉืื
ืืืคื ืืืืจืืืช. ื ืืชื ืืืคื ืืช ืืช ืืคืื ืฉื print ื-printf ืืงืืืฅ ืื
ืคืงืืื ืขื ืืื ืืืกืคื ืฉื > ืคืืื, >> ืคืืื ืื | ืืคืงืืื ืืกืืฃ ืืืฆืืจื ืืืืืคืกืช.
ื ืืชืื ืืืืฉ ื ืคืชื ืคืืื or ืืคืงืืื ืจืง ืคืขื ืืืช, ืืืคื ืืืช ืืืืฉ ืขืืงืืืช ืืชืืืกืคืืช ื-ืืืจ
ืืจื ืคืชืื. ืืคื ืืืืกืืื, ืืืืง ืืฉืืื ืืช ืฉื ืืงืืืฅ "/dev/stderr"ืขื stderr ืืฉืจ
ืืืคืฉืจ ืืคื ืืืช print ื-printf ื-stderr. ืืืืง ืืฉืืื ืื "-" ื
"/dev/stdout" ืขื stdin ื-stdout ืืืืคืฉืจ ืืืขืืืจ ืืจืืื ืืื ืืคืื ืงืฆืืืช.
ืคืื ืงืฆืืืช ืืงืื getline ืืฉ ืืช ืืืืจืืืฆืืืช ืืืืืช.
getline
ืงืืจื ืืชืื $0, ืืขืืื ืืช ืืฉืืืช, NF, NR ื FNR.
getline ืคืืื
ืงืืจื ืืชืื $0 ืืื ื- ืคืืื, ืืขืืื ืืช ืืฉืืืช ื NF.
getline ืืื
ืงืืจื ืืช ืืจืฉืืื ืืืื ืืชืื ืืื, ืขืืืื ืื NR ื FNR.
getline ืืื < ืคืืื
ืงืืจื ืืช ืืจืฉืืื ืืืื ืฉื ืคืืื ืื ืชืื ืืื.
ืืคืงืืื | getline
ืฆืื ืืจืืช ืจืฉืืื ื ืืคืงืืื ืื ืชืื $0 ืืืขืืื ืืช ืืฉืืืช ื NF.
ืืคืงืืื | getline ืืื
ืฆืื ืืจืืช ืจืฉืืื ื ืืคืงืืื ืื ืชืื ืืื.
Getline ืืืืืจื 0 ืืกืืฃ ืืงืืืฅ, -1 ืืฉืืืื, ืืืจืช 1.
ืืคืงืืืืช ืืงืฆื ืืฆืื ืืจืืช ืืืืฆืขืืช ืขื ืืื /bin/sh.
ืืคืื ืงืฆืื close(ืืืืื) ืกืืืจ ืืช ืืงืืืฅ ืื ืืฆืื ืืจ ืืืฉืืื ืืืื ืืืืื. ืกืืืจ ืืืืืจ 0 ืื
ืืืืื ืืื ืงืืืฅ ืคืชืื, ืืฆื ืืืฆืืื ืื ืืืืื ืืื ืคืงืืื ืฆืื ืืจืืช, ื-1 ืืืจืช. ืกืืืจ
ืืฉืืฉ ืืงืจืืื ืืืืจืช ืฉื ืงืืืฅ ืื ืคืงืืื, ืืื ืฉืืงืฆื ืืฉื ื ืฉื ืฆืื ืืจ ืคืื ืืกืชืืื
ืื ืืืกืื ืืืฉืืื ืงืืฆืื.
ืืคืื ืงืฆืื ืืฉืืืฃ(ืืืืื) ืืกืืง ืืช ืงืืืฅ ืืคืื ืื ืืฆืื ืืจ ืืืฉืืื ืืืื ืืืืื. ืกืืืง
ืืืืืจื 0 ืื ืืืืื ืืื ืืจื ืคืื ืคืชืื ืืืจ -1. ืกืืืง ืืื ืืืืื
stdout. Fflush ืขื ืืจืืืื ื ืจืืง ("") ืืกืืง ืื ืคืื ืคืชืื.
ืืคืื ืงืฆืื ืืขืจืืช(ืืืืื) ืฉืืืืฉืื / Bin / sh ืืืืฆืื ืืืืจื ืืืืื ืืืืืืจื ืืช ืืฆื ืืืฆืืื ืฉื
ืืคืงืืื ืืืืื. ืฉืื ืืืื ืฉืืืฆืขื ื- ืขื ืืืืืช ืืขืจื ืื ืืืขืืจ ืืคืงืืืืช ืืืืืฆืขืืช ืขื
ืืขืจืืช ืื ืฆืื ืืจืืช.
10. ืืฉืชืืฉ ืืืืืจ ืคืื ืงืฆืืืช
ืืชืืืืจ ืขืืืจ ืคืื ืงืฆืื ืืืืืืจืช ืขื ืืื ืืฉืชืืฉ ืืื
ืคืื ืงืฆืื ืฉื ( ืืืขื ) { ืืฆืืจืืช }
ืืืฃ ืืคืื ืงืฆืื ืืืื ืืืืื ืืฆืืจืช return
ืึทืึฒืืึนืจ opt_expr
ืืื ืฆืืจื ืืืฆืืจืช ืืืืจื. ืงืจืืืืช ืืคืื ืงืฆืืืช ืขืฉืืืืช ืืืืืช ืืงืื ื ืืช ืื ืจืงืืจืกืืืืืช. ืคืื ืงืฆืืืช
ืืืขืืจืื ืืืืืืื ืืคื ืขืจื ืืืขืจืืื ืืคื ืืคื ืื. ืืืขืื ืื ื ืืกืคืื ืืฉืืฉืื ืืืงืืืืื
ืืฉืชื ืื ืืืืืืืื ื ืจืืง. ืืืืืื, csplit(ืก,ื) ืฉื ืื ืชื ืฉื s
ืืชืื ืืขืจื A ืืืืืืจ ืืช ืืืืจื ืฉื s.
function csplit(s, A, n, i)
{
n = ืืืจื(ืื)
for( i = 1 ; i <= n ; i++ ) A[i] = substr(s, i, 1)
ืืืืืจ ื
}
ืืืกืคืช ืจืืื ื ืืกืฃ ืืื ืืจืืืื ืืื ืฉืขืืจื ืืืฉืชื ืื ืืงืืืืื ืืื ืงืื ืื ืฆืืื ืืืช.
ื ืืชื ืืืคื ืืช ืืคืื ืงืฆืืืช ืืคื ื ืืืืจืชื, ืืื ืฉื ืืคืื ืงืฆืื ืื-'(' ืฉื
ืืืืขืื ืื ืืืืืื ืืืขืช ืืื ืืื ืืข ืืืืื ืขื ืฉืจืฉืืจ.
11. ืคืืฆืื ืืืจืืืืช, ืจืฉืื ื ืงืืฆืื
ืชืืื ืืืช Awk ืืฉืชืืฉืืช ืืืืชื ืืืืืจืืชื ืืื ืืคืฆื ืืืจืืืืช ืืืขืจืืื ืขื split(), ืืจืฉืืืืช
ืืชืื ืฉืืืช ืขื FS. ืืืืง ืืฉืชืืฉ ืืขืฆื ืืืืชื ืืืืืจืืชื ืืื ืืคืฆื ืงืืฆืื ืืจืฉืืืืช
on RS.
ืึฐืคึทืฆึตื(expr,A,sep) ืคืืขื ืืืืคื ืืื:
(1) ืื ืกืคืืืืจ ืืืฉืื, ืืื ืืืืืฃ ื FS. ืกืคืืืืจ ืืืื ืืืืืช ืืืืื ืื
ืืืขื ืจืืืื. ืื ืื ืืืืื ืืกืื ืฉืืื ื ืืืจืืืช, ืื ืื
ืืืืจ ืืืืจืืืช.
(2) ืื ืกืคืืืืจ = " " (ืจืืื ืืืื), ืื ืืืื ืืืคื ืื ื
ืืืืง ืืืืืจื ืฉื ืืืืื, ื ืกืคืืืืจ ืืืคื . ืืืืง ืืืืืจ ืืื ืืจืืื
ืืืืื /[ \t\n]+/. ืืืจืช ืกืคืืืืจ ืืชืืืืกืื ืืืื ืืื ืืืืื ืจืืื,
ืืื ืฉืืชืขืืืื ืืชืืืื ืืื ืขืืืจ ืืืจืืืช ืืืืจื 1, ืืืฉื,
split(x, A, "*") ื-split(x, A, /\*/) ืืืื.
(3) ืื ืืืืื ืืื ื ืืืจืืืช, ืืื ืืืืจ ืืืืจืืืช. ืื ืืืืื ืืื ืื ืืจืืง
ืืืจืืืช "", split() ืืืืืจื 0 ื A ืืืืืจ ืจืืง. ืืืจืช, ืื ืืื-
ืืชืืืืช ืืืคืคืืช, ืื ืืคืก ืืืืจืื ืืืืชืจ ืฉื ืกืคืืืืจ in ืืืืื, ื ืคืจื ืืืืื ืื ืชืื
ืฉืืืช ืฉื ืืขื ืื ืืชืืื A. ืืฉืืืช ืืืืงืืื ื-A[1], A[2], ...,
A[n] ื-split() ืืืืืจืื ืืช n, ืืกืคืจ ืืฉืืืช ืฉืืื ืืืกืคืจ ืฉื
ืืชืืืืช ืคืืืก ืืื. ื ืชืื ืื ืฉืืืื ืกื A ืฉื ืจืื ืืกืคืจื ืืื ืืืงืื ืืกืคืจ ื
ืืืจืืืช.
ืคืืฆืื ืจืฉืืืืช ืืฉืืืช ืขืืื ืืืชื ืืืืจ ืืืขื ืืืืงืื ื ืืขื ืื $1, $2, ...,
$NF. ืื $0 ืื ืจืืง, NF ืืืืืจ ื-0 ืืืื $i ื "".
ืืืืง ืืคืฆื ืงืืฆืื ืืจืฉืืืืช ืขื ืืื ืืืชื ืืืืืจืืชื, ืืื ืืืืื ืืงื
RS ืืื ืืืืช ืืกืืื ืืืงืื ืืคืจืื. (ORS ืืื ืืืืช ืื ืืจืืื ืืืจ).
ืืืฉื, ืื FS = ":+" ื $0 = "a::b:" , ืื NF = 3 ื- $1 = "ื", $2 = "b" ื $3 =
"", ืืื ืื "a::b:" ืืื ืืชืืื ืฉื ืงืืืฅ ืงืื ื RS = ":+", ืื ืืฉ
ืฉื ื ืจืฉืืืืช "a" ื-"b".
RS = " " ืืื ื ืืืืื.
If FS = "", ืื ืืืืง ืฉืืืจืช ืืช ืืฉืื ืืืืืืืช ืืืืืืช, ืืืืืื,
ืึฐืคึทืฆึตื(ืก,ื,"") ืืืงื ืืช ืืชืืืื ืืืืฉืืื ืฉื s ืื ืชืื A.
12. ืจื ืงื ืจืฉืื
ืืฉืืื ืืื ืืื? ืืืืง ืืคืจืฉ RS ืืืืืื ืจืืืืจื, ืจืฉืืืืช ืืจืืืืช ืฉืืจืืช ืื ืงืืืช. ืืืืจื RS
= "\n\n+", ืืืจื ืืฉืืจื ืจืืงืืช ืืืช ืื ืืืชืจ ืืืคืจืื ืืื ืจืฉืืืืช. ืื FS = " " (ืืจืืจืช ืืืืื),
ืืื ืฉืืจืืช ืืืฉืืช ืืืืืืช, ืืคื ืืืืืื ืขืืืจ ืืืขืื, ืืืคืืื ืืืจืื ืืฉืืจืืช ืืืฉืืช ืืืืืืช ืื
ืืคืจืืื ืฉืืืช.
ืืืืืื, ืื ืงืืืฅ ืืื "ab\nc\n\n", RS = "\n\n+" ื FS = " ", ืื ืืฉ
ืจืฉืืื ืืืช "ab\nc" ืขื ืฉืืืฉื ืฉืืืช "a", "b" ื-"c". ืึดืฉืึฐืชึทื ึถื FS = "\n", ื ืืชื
ืฉื ื ืฉืืืช "ab" ื-"c"; ืึดืฉืึฐืชึทื ึถื FS = "", ื ืืชื ืฉืื ืืื ืืื ื-
ืชืงืืื.
ืื ืืชื ืจืืฆื ืฉืงืืืื ืขื ืจืืืืื ืื ืืืืื ืืืืฉืื ืจืืงืื, ืืืืจ RS = "\n([ \t]*\n)+".
ืืชืืืืืช ืขื awks ืืืจืื, ืืืืจื RS ="" ืืฉ ืืืชื ืืคืงื ืืื ืื ืฉืืจืืช ืจืืงืืช
ืืืคืฉืืื ืืืืืง ืืงืืื ืืืืืืจื ืฉื ืงืืฆืื ืืื ื ืงืืขืื ืจืฉืืืืช ืืืืื RS =
"\n\n+". Posix ืืืจืฉ ืฉ"\n" ืชืืื ืืคืจืื ืืื ืจืฉืืืืช ืืืฉืจ RS = "" ืืื ืงืฉืจ ื-
ืขืจื ืฉื FS. ืืืืง ืืื ื ืชืืื ืืืื ื ืื, ืืืืืื ืฉืืืืจืช "\n" ืืชืืจ
ืขืืฉื ืืช ืื ืืืืชืจ.
ืจืื ืืืื ืืฉืืชื ืืฉืชื ื RS ืขืืืจ ืจืฉืืืืช ืืจืืืืช ืฉืืจืืช, ืชืจืฆื ืื ืืฉื ืืช
ORS ื-"\n\n" ืื ืฉืืจืืื ืืจืฉืืืืช ืืืฉืืจ ืืคืื.
13. ืชึธืึฐื ึดืืช ืืืฆืืช ืืืืจื
ืกืขืืฃ ืื ืืชืืจ ืืช ืกืืจ ืืืฆืืข ืืชืืื ืืช. ืจืืฉืื ARGC ืืืืืจ ืืกื ืืื
ืืกืคืจ ืืืจืืืื ืืื ืฉื ืฉืืจืช ืืคืงืืื ืฉืืืขืืจื ืืฉืื ืืืืฆืืข ืฉื ืืชืืื ืืช. ARGV[0] is
ืืืืจ ืืช ืืฉื ืฉื ืืืชืืจืืื AWK ื ARGV[1] ... ARGV[ARGC-1] ืืืืืง ืืช ืื ืืชืจืื
ืืจืืืื ืืื ืฉื ืฉืืจืช ืืคืงืืื ืืืขืื ืืคืฉืจืืืืช ืืืงืืจ ืชืืื ืืช. ืืืฉื ืขื
mawk -f prog v=1 A t=hello B
ARGC = 5 ืขื ARGV[0] = "ืืืืง", ARGV[1] = "v=1", ARGV[2] = "ื", ARGV[3] = "t=ืฉืืื" ื
ARGV[4] = "B".
ืืื, ืื ืืื ืืชืื ืืืกืืื ืืืืฆืขืช ืืคื ืืกืืจ. ืื ืืชืืื ืืช ืืืจืืืช ืืืื ื ืืชืื
ืืืกื, ืืื ืืืืฆืืข ืืกืชืืื, ืืืจืช ืืจื ืงืื ื ืคืชื ืืืืืฆืืข ืืืฉืื.
If ARGC ืฉืืื ื-1, ืืจื ืืงืื ืืืืืจ ื-stdin, ืืืจืช ืืืจืืืื ืืื ืฉื ืฉืืจืช ืืคืงืืื
ARGV[1] ... ARGV[ARGC-1] ื ืืืงืื ืขืืืจ ืืจืืืื ื ืงืืืฅ.
ืืืจืืืื ืืื ืฉื ืฉืืจืช ืืคืงืืื ืืชืืืงืื ืืฉืืืฉ ืงืืืฆืืช: ืืจืืืื ืืื ืฉื ืงืืืฅ, ืืจืืืื ืืื ืืืงืฆืื
ืืืืจืืืืช ืจืืงืืช "". ืืืืื ืืฉ ืืช ืืืืคืก ืืื=ืืืจืืืช. ืืืฉืจ an ARGV[i] ื ืืืงืช
ืืืจืืืื ื ืงืืืฅ ืืคืฉืจื, ืื ืืื ืจืืง ืืื ืืืื; ืื ืื ืืฉืืื
ืืืขืื, ืืืฉืืื ื ืืื ืืชืจืืฉ ื i ืืืื ืืืืขืื ืืื; ืึทืึตืจ ARGV[i]
ื ืคืชื ืืงืื. ืื ืืื ืื ืืฆืืื ืืืืคืชื, ืืืืฆืืข ืืกืชืืื ืขื ืงืื ืืฆืืื 2. ืื ืื
ืืจืืืื ื ืฉืืจืช ืืคืงืืื ืืื ืืจืืืื ื ืงืืืฅ, ืืื ืืงืื ืืืืข ื-stdin. Getline ื ื ืืชืื
ืคืขืืื ืคืืชืืช ืงืื. "-" ืืืจืืืื ื ืงืืืฅ ืืฆืืื stdin.
ืืจืืข ืฉืืจื ืงืื ืคืชืื, ืื ืจืฉืืืช ืงืื ื ืืืงืช ืืื ืื ืืืช ืืื ืืคืืก, ืืื ืื
ืืชืืืืช, ืืืฉืืืืืช ืคืขืืื ืืืฆื ืืืืจื. ืชืื ืืช ืืืืื ืชืืืืช ืื ืื
Boolean true (ืจืื ืกืืฃ ืกืขืืฃ 2). ื ืืชืื ืืคืืก ืชืืื ืืคื ื ืฉืืฉ ืงืื ืืืฉืื
ื ืงืจื, ืืื ืืกืืฃ ืืืคืืก ืชืืื ืืืืจ ืงืจืืืช ืื ืืงืื. ืืคืืก ืืืื,
ืืืืื1,ืืืืื2 , ืืชืืื ืืื ืฉืื ืืื ืืืฉืืง ืฉื ืืืืื1 ืืืืชืืื ืืืืื2
ืืืืคื ืืืืื ื.
ืืืฉืจ ืกืืฃ ืืงืืืฅ ืืชืจืืฉ ืืืจื ืืงืื, ืืืจืืืื ืืื ืื ืืชืจืื ืฉื ืฉืืจืช ืืคืงืืื ืื
ื ืืืง ืขืืืจ ืืจืืืื ื ืงืืืฅ, ืืื ืืฉ ืืื ืืื ื ืคืชื, ืืืจืช ืืช ืืกืืฃ ืืคืืก is
ื ืืฉื ืืืชืื ืืืื ืืกืืฃ ืคืขืืืืช ืืืฆืืื ืืืืจื.
ืืืืืื, ืืืงืฆืื v=1 ืืชืจืืฉืช ืืืืจ ื- ืืชืื ืคืขืืืืช ืืืฆืืื ืืืืจื, ื
ืื ืชืื ืื ืืืืืงืืื ื-v ืืืงืืืื ืืกืคืจ ืืืืจืืืช. ืืงืื ื ืงืจื ืืืืจ ืืื ืืงืืืฅ A. ืืกืืฃ
ืฉื ืงืืืฅ A, t ืืืืืจ ืืืืจืืืช "hello", ื-B ื ืคืชื ืืงืื. ืืกืืฃ ืงืืืฅ ื',
ืื ืืื ืืกืืฃ ืคืขืืืืช ืืืฆืืื ืืืืจื.
ืืจืืืช ืืชืืื ืืช ื ืืคืืก {ืคืขืืื} ื ืืชื ืืฉื ืืช ืืช ืืจืื ืขื
ืืื
ืืฆืืื opt_expr
ืืฆืืจืืช. ื ืืื ืืืฉืคื ืืืจื ืืงืจืืื ืฉื ืจืฉืืืช ืืงืื ืืืื ืืืืืืงืช ืืคืืกืื
ืืื ืืืชืืื ืืืืฉ ืขื ืืจืืฉืื ืืคืืก {ืคืขืืื} ืืื ืืชืืื ืืช. ื ืืฆืืื ืืืืจื ืืืจืืช
ืืืฆืืข ืืืืื ืฉื ื ืืกืืฃ ืคืขืืืืช ืื ืกืืื ืชืืื ืืช ืื ืืื ืืืื ืื ืื
ืืฆืืื ืืชืจืืฉืช ื ืืกืืฃ ืคืขืืื. ื opt_expr ืืืืืจ ืืช ืขืจื ืืืฆืืื ืฉื ืืชืืื ืืช ืืื ืื ืื
ื ืืืง ืขื ืืื ืืืืืจ ืืืชืจ ืืฆืืื ืื ืฉืืืื ืฉืืืืจ ืืื.
ืืืืืืืช
1. ืืืงืืช ืืชืื.
{ ืืืคืก }
2. ืืืงืืช ืืช wc.
{ chars += length($0) + 1 # ืืืกืฃ ืืื ืขืืืจ \n
ืืืืื += NF
}
END{ ืืืคืก NR, ืืืืื, ืชืืืื }
3. ืืกืคืืจ ืืช ืืกืคืจ ื"ืืืืื ืืืืืชืืืช" ืืืืืืืืืช.
ืืชืื { FS = "[^A-Za-z]+" }
{ for(i = 1 ; i <= NF ; i++) word[$i] = "" }
END { ืืืง ืืืื[""]
ืขืืืจ (i ืืืืื) cnt++
ืืืคืก cnt
}
4. ืืกืื ืืช ืืฉืื ืืฉื ื ืฉื ืื ืจืฉืืื ืขื ืกืื ืืฉืื ืืจืืฉืื.
$1 ~ /credit|gain/ { sum += $2 }
$1 ~ /ืืืื|ืืคืกื/ { sum -= $2 }
END { ืกืืื ืืืคืกื }
5. ืืืื ืงืืืฅ, ืืฉืืืื ืืืืจืืืช
{ line[NR] = $0 "" } # ืืื ืฉืืฉ ืกืื ืืฉืืืื
# ืืืงืจื ืฉืืืง ืืืฉืืจืืช ื ืจืืืช ืืกืคืจืืืช
END { isort(line, NR)
for(i = 1 ; i <= NR ; i++) print line[i]
}
#insertion ืกืื ืฉื A[1..n]
function isort( A, n, i, j, hold)
{
for( i = 2 ; i <= n ; i++)
{
ืืืืง = A[j = i]
while ( A[j-1] > ืืืืงื )
{ j-- ; A[j+1] = A[j] }
A[j] = ืืืืงื
}
# sentinel A[0] = "" ืืืืืฆืจ ืืืืืช ืืฆืืจื
}
ืชึฐืึดืืืึผืช ืกืืืืืช
ืืืืืจื ืฉื Posix 1003.2 (ืืืืื 11.3) ืฉื ืฉืคืช ื-AWK ืืื AWK ืืืชืืืจ ื-AWK
ืกืคืจ ืขื ืืื ืืจืืืืช ืฉืืืคืืขื ื-SystemVR4 nawk. ืืืจืืืืช ืื:
ืคืื ืงืฆืืืช ืืืฉืืช: toupper() ื-tolower().
ืืฉืชื ืื ืืืฉืื: ENVIRON[] ื-CONVFMT.
ืืคืจืื ืืืจื ืฉื ANSI C ืขืืืจ printf() ื-sprintf().
ืืคืฉืจืืืืช ืคืงืืื ืืืฉืืช: -v var=value, ืืคืฉืจืืืืช -f ืืจืืืืช ืืืคืฉืจืืืืช ืืืฉืื
ืืืืขืื ืื ื-W.
Posix AWK ืืืืื ืืคืขืื ืขื ืงืืฆืื ืฉืืจื ืืื ืคืขื. RS ื ืืชื ืืฉื ืืช ื"\n"
ืืืืืช ืืืืืช ืืืจืช, ืืื ืงืฉื ืืืฆืื ืืื ืฉืืืืฉ - ืืื
ืืืืืืืช ืืกืคืจ AWK. ืืคื ืืืืกืืื, RS = "", ืืืจื ืืฉืืจื ืจืืงืืช ืืืช ืื ืืืชืจ ืืืคืจืื
ืจืฉืืืืช, ืืืืคืฉืจืืช ืจืฉืืืืช ืืจืืืืช ืฉืืจืืช. ืืชื RS = "", "\n" ืืื ืชืืื ืืคืจืื ืฉืืืช
ืืื ืงืฉืจ ืืขืจื ื FS.
ืืืืง, ืืฆื ืฉื ื, ืืืคืฉืจ RS ืืืืืช ืืืืื ืจืืืืจื. ืืืฉืจ "\n" ืืืคืืข ื
ืจืฉืืืืช, ืืื ืืืืคื ืืืจืื, ื FS ืชืืื ืงืืืข ืฉืืืช.
ืืกืจืช ืืงื ืืื ืคืขื ืคืจืืืืืช ืืืืื ืืืคืื ืชืืื ืืืช ืืกืืืืืช ืืคืฉืืืืช ืืืชืจ ืืืขืชืื ืงืจืืืืช ืืืืื ืืืฉืชืคืจ
ืืืฆืืขืื. ืืืืืื, ืืืฆืืข ืืืืฉ ืฉื ืืืืื 3 ืืืืขืื,
ืืชืื { RS = "[^A-Za-z]+" }
{ word[ $0 ] = "" }
END { ืืืง ืืืื[ "" ]
for(i ืืืืื) cnt++
ืืืคืก cnt
}
ืกืืคืจ ืืช ืืกืคืจ ืืืืืื ืืืืืืืืืช ืขื ืืื ืืคืืืช ืื ืืืื ืืจืฉืืื. ืขื ืงืืฆืื ืืืืื ืืื ืื ื,
ืืืืง ืืืฆืขืื ืคื ืฉื ืืื ืืืจ ืืืชืจ, ืืืื ืืืืืื ืืคื ืืืืช ืืคืฉืืื.
ืืชืืื ืืช ืืืื ืืืืืคื ืื ืืขืจื ืืจืืื ืืืื ืืงืืืฅ ืชืืื ืืช C,
ืืชืื {
RS = "/\*([^*]|\*+[^/*])*\*+/"
ืชืืืื ืืืช ืืื ืืคืจืื ืจืฉืืืืช
ORS = " "
getline hold
}
{ ืืืคืกืช ืืืืงื; ืืืืง = $0 }
END { printf "%s" , ืืืืง }
ืืฉ ืฆืืจื ืืืืืจืช ืจืฉืืื ืืืช ืืื ืืื ืืข ืกืืื ืืจืฉืืื ืืืืจืื ื ืขื ืจืืื.
ืขื ืืืืง, ืืืื ืฉืืืื,
x ~ /a\+b/ x ~ "a\+b" x ~ "a\\+b"
ืืืืจืืืืช ื ืกืจืงืืช ืคืขืืืื, ืคืขื ืืืช ืืืืจืืืช ืืคืขื ืืืืืื ืจืืืืจื. ืขื
ืกืจืืงืช ืืืจืืืช, ืืืืง ืืชืขืื ืืืืจืืื ืขื ืืืืืืช ืฉืืื ื ืืจืืื ืืขืื ืกืคืจ AWK ืืืื
\c ืืืืืช ืืืืจ ื c ืื ืฉืืืืื ืืจืืื ืืคืืื ืฉื ืืื-ืชืืืื ืคื ืืื
ืืืจืืืืช. Posix ืืกืจื ืืืคืืจืฉ ืืืืืืจ ืืช ืืืชื ืืืืช ืฉืืืคื ืืืืคื ืคืกืืื ืชืืื ืืืช
ืื ืืืื ืืจืืฅ ืชืืช ืืืืื ืฉื awks ืืื ืืืฉืชืืฉ ื ืืื ืืืชืจ ืืื ืคืืืช ืงืจืื, ืืคืื
ืืจืืื.
Posix AWK ืื ืืืื "/dev/std{out,err}" ืื \x hex ืจืฆืคื ืืจืืื ืืืืจืืืืช.
ืื ืืืื ื-ANSI C, ืืืืง ืืืืื ืืช ืืกืคืจ ืืกืคืจืืช ืฉืืืจื \x ืืฉืชืืื ืืืจื
ืืืฉืื ืชืืื ืจืง ืืชืืืื ืฉื 8 ืกืืืืืช. ืืืืื ื ืืฉืืืฃ ืืืคืืข ืืจืืฉืื ื ื-a
ืืืืจืื ื (1993) AT&T awk ืฉืืืจืจ ื-netlib, ืืืื ื ืืืง ืืชืงื posix.
ืืืืงื ืืฆืืืจืช ืขื ืืืกืืจ ืืขืจื ืืื ื ืืืง ืืชืงื posix.
Posix ืขืืื ืืืคืืจืฉ ืืช ืืืชื ืืืืช ืฉื FS = "" ืื ืืืืืจ, ืืืืืืจ ืคืืฆืื ืฉื
ืืืงืืื ืืชืืืื ืืคืืจืืฉ ืืคืฉืจื, ืืื ืืจืืข ืืฉืืืืฉ ืืื ืื
ื ืืื ืขื ืคื ื ืืืฉืืืื.
ืืืกืืฃ, ืื ื ืืื ืืืืง ืืืคื ืืืงืจืื ืืจืืืื ืฉืื ื ืืื ื ืืกืคืจ AWK ืื ื
ืืืืืช Posix. ืื ืื ืืืื ืืื ืื ืขืงืืืืช ืขื ืคื ื awks ืืืืื ืืืื ืื ืืื
ืกึธืขึดืืฃ.
substr(s, i, n) ืืืืืจื ืืช ืืชืืืื ืฉื s ืืฆืืืช ืฉื ืืกืืืจ
ืืจืืื [1, ืืืจื(ืื)] ืืืืจืืื ืืืฆื ืคืชืื [i, i+n). ืืฉืื
ืืฆืืืช ืจืืงื, ืืืืจืืืช ืืจืืงื ืืืืืจืช; so substr("ABC", 1, 0) = ""
ื-substr("ABC", -4, 6) = "A".
ืื ืืืจืืืช, ืืืื ืืืืจืืืช ืืจืืงื, ืชืืืืช ืืช ืืืืจืืืช ืืจืืงื ืืืืืช ืื,
s ~ // ื-s ~ "", ืื ืชืืื 1 ืืื ืืชืืื(ืื, //) ืืืชืืื(ืื, ""). ืืฉื ืืื ืืืืจืื ืื
ืกื RLENGTH ืื 0.
ืืื ืืงืก(ืื, t) ืืื ืชืืื ืืืชืืื(ืื, t1) ืืืฉืจ t1 ืืื ื-t ืขื
ืืืืืืช ืืื ืืจืื. ืืคืืื ืขืงืืืืช ืขื ืืชืืื ืืืืืืช ืืช ืืืื ืืงืก(ืื, "")
ืชืืื ืืืืืจ 1. ืื ืืชื ืื, index(s,t) != 0 ืื ืืจืง t ืืื ืชืช ืืืจืืืช
ืฉื s, ืืืจืฉ index("","") = 1.
ืื getline ื ืชืงื ืืกืืฃ ืืงืืืฅ, getline var, ืืฉืืืจ ืืช var ืืื ืฉืื ืื. ืืืืคื ืืืื,
ืืื ืืกื ื ืืกืืฃ ืคืขืืืืช, $0, ืืฉืืืช ื NF ืขืจืื ืืื ืฉืื ืื
ืืฉืื ืืืืจืื.
ืืฉืชืืฉ ื-mawk ืืืื ืืจื ื ืืืืฆืขืืช ืฉืืจืืชื onworks.net