) r/ p, P6 P* ^4 g! v% o从脚本文件中读取awk命令。 4 S# p) F5 a, l6 D3 t% x b7 z$ [. ]) e : S) q- Q8 c2 ]8 M; o0 J) Z-mf nnn and -mr nnn$ d2 Y' H1 {( p4 c! e- {
+ l ]( {7 ?9 V* }6 O+ p
对nnn值设置内在限制,-mf选项限制分配给nnn的最大块数目;-mr选项限制记录的最大数目。这两个功能是Bell实验室版awk的扩展功能,在标准awk中不适用。; y( _- D9 O4 o. \4 j
8 j+ q3 ?, j9 i8 f% h7 Y- d
-W compact or --compat, -W traditional or --traditional3 ^# a& ` T( \* X+ ]. T9 q
' w$ T( o1 ^* C. W8 r0 @在兼容模式下运行awk。所以gawk的行为和标准的awk完全一样,所有的awk扩展都被忽略。 5 @6 y9 Z# P7 p w / j& y! i; R% N2 o* i-W copyleft or --copyleft, -W copyright or --copyright% r( W4 Z, y9 j0 Q4 ^2 q
/ p9 H: Q6 a- G打印简短的版权信息。! T( L* R k0 `7 D3 h5 q' g
8 R4 V! H3 c, Q
-W help or --help, -W usage or --usage ; ?7 o! |; z( A' B* `0 x 8 [3 E. A; ^. ^" U2 g; h9 k打印全部awk选项和每个选项的简短说明。 # e( R2 b! X1 h' G" i) z- g6 v# p( P7 Z6 @+ n
-W lint or --lint : C& j4 }3 Q- c1 P2 O& N4 K" a/ U+ D! f0 N- P; I3 M1 U t
打印不能向传统unix平台移植的结构的警告。 & f3 f W( B' n8 Q2 A0 S3 @ o " o/ C8 \, ?8 q' ?- ]: h; C, m-W lint-old or --lint-old9 ~ l j& P m$ \/ Q5 v7 c
* x% n4 F, v' R/ n' {' h& E e# i
打印关于不能向传统unix平台移植的结构的警告。 : \, y3 l3 K& P6 n" E3 x# }. ^1 \! q1 t r* X0 E
-W posix! s, h8 ?2 s% U, _" y
# R1 F" c- T) M( j打开兼容模式。但有以下限制,不识别:/x、函数关键字、func、换码序列以及当fs是一个空格时,将新行作为一个域分隔符;操作符**和**=不能代替^和^=;fflush无效。 : o! I( X+ {) _# g 5 x% C& L& u: K-W re-interval or --re-inerval 9 ?- p2 u; k0 I2 S 7 k8 t# F$ ^8 P3 B: `& U. {允许间隔正则表达式的使用,参考(grep中的Posix字符类),如括号表达式[[:alpha:]]。 - u$ ^2 V2 i+ @$ s. y# _, [$ u4 _: r* v& |1 N e# @
-W source program-text or --source program-text; U% ^- H1 Z" r: c+ S2 s
3 Q9 r+ P( F4 Q& B4 c
使用program-text作为源代码,可与-f命令混用。4 f- S6 y/ _ \. M; B- }% w
# W0 z; a' L' H& z-W version or --version# a, N, m. P; A3 l5 e& X" E
9 s1 a$ o* M+ |9 y5 I: g
打印bug报告信息的版本。 " C; v7 L" D9 ^5 m2 H) y 2 k# m3 e7 D( w' ~, R. |) Y7 g* j* B- } , l9 a- f& A4 h8 U, X: N! P / F* m* p/ l4 e基本用法3 I" d) X: B" x# W4 j' ]
2 n( b& f3 K# h5 H- @$ n, U5 Mlog.txt文本内容如下:* y! m' A' C1 O8 {1 Z
/ }# \8 N( H& L3 z) V1 B3 v( a( r
2 this is a test ' E# K! Q O, F' _% t- C$ U3 Are you like awk% z1 K" R. t% j( @9 y
This's a test ) B- U c% A w: o/ J! |% [10 There are orange,apple,mongo # e. C6 o% v! S& {( R) x, p! x 8 C1 C3 n7 J0 |& } ) j. G" `. d7 T: P' `: C用法一:, n/ p! t) ? i* @
6 C! ?) i9 x" ^9 W
awk '{[pattern] action}' {filenames} # 行匹配语句 awk '' 只能用单引号+ \* D3 L8 P6 ^$ P1 g g
* e; b, U, G: V7 o
8 b' z* d( e) `1 r. Y$ A4 l实例: ! n* f& c, t! _5 D; i' ?6 t % X1 z; v; g# g* @# 每行按空格或TAB分割,输出文本中的1、4项 2 ?; Y4 ^: s# X1 N/ _2 ` $ awk '{print $1,$4}' log.txt / H* o" d. v, d# d1 S. w6 g, D ---------------------------------------------7 x! L6 L5 c) W/ o( ?& s- |
2 a 5 L9 m3 e" }5 e3 e 3 like ) l0 N5 l' ?7 h0 N3 H2 ?' t This's 0 r3 W) E0 I( m' W r 10 orange,apple,mongo ( k8 R1 F4 x0 ]' r8 O: N* A # 格式化输出: J) ^3 B; H4 w9 M6 u) H+ q
$ awk '{printf "%-8s %-10s\n",$1,$4}' log.txt % p& |; Q+ J C( r: W7 @8 } ---------------------------------------------, o& A4 r( {, y; h) @
2 a ( k+ p8 A( U. g/ {7 i% R! G+ z+ W3 \ 3 like! ^/ i/ ?: W9 g
This's$ Q8 P, i3 m* N9 K
10 orange,apple,mongo 9 z7 o& ^/ y) l3 V5 a2 [4 J5 H4 V % v7 a. B+ T$ `1 N/ I) a+ _ H) ~8 Y4 }8 a1 P# j
用法二:' d# m. A. Q% i0 [( o