awk 与sed用法与正规表达式

上一篇 / 下一篇  2010-07-13 17:24:24 / 个人分类:软件测试

[Vc)no0AWK51Testing软件测试网s6|3yA$?W J

B%n1j|mY"e(KK&W0 

uoo:j-Y]4\:V zj3|;k5T051Testing软件测试网Pv8M~)u#w\(H`(Y

A R G C                  命令行参数个数51Testing软件测试网8a/W.t%{coVX
A R G V                  命令行参数排列
"Fcop_ n z7If3j0E N V I R O N            支持队列中系统环境变量的使用51Testing软件测试网+yIc!o OT;?+s p9Y ?
FILENAME                 a w k浏览的文件名
c SoK [AocGh0F N R                    浏览文件的记录数51Testing软件测试网CS,q8]P4E} lBv
F S                      设置输入域分隔符,等价于命令行- F选项

R8P3H&o+S!eb|0

3@ mY7f*G(O;D0取文件名:

Yh!vY}'S0

)G1QNN7s6Nt/c0echo "/usr/local/etc/rc.sybase" |awk -F/ '{Print $NF}'51Testing软件测试网TYb ^^Ng5a

5H0`+^-EG8H4G,`0N F                      浏览记录的域个数
8gW"V*dA"WP?z0N R                      已读的记录数
Y8_(\9I)\ h'o0O F S                    输出域分隔符51Testing软件测试网 @`f8o9mb8g-S
O R S                    输出记录分隔符
5q vL j!_B6f4B |*S U0R S                      控制记录分隔符

(Na*i2^u9]+}7S0

D E c(y0f[W0AWK函数:

/r,fkoA#]"UzKn'bc0

Bi/ll R:P0g s u b ( r, s )         在整个$ 0中用s替代r
|.?R#y0? u8RLa]:B0g s u b ( r, s , t )     在整个t中用s替代r
&b HL [0zq*W6qCX)a7_0i n d e x ( s , t )      返回s中字符串t的第一位置51Testing软件测试网;l GW V9Uj9syM[W
l e n g t h ( s )        返回s长度51Testing软件测试网"_o_(bu[
m a t c h ( s , r )      测试s是否包含匹配r的字符串
-v w%i%v9k0s p l i t ( s , a , f s ) 在f s上将s分成序列a51Testing软件测试网.[`&b^!]2A
s p r i n t ( f m t , e x p ) 返回经f m t格式化后的e x p
&Ix6J/xQ8Cj'[3S'u X0s u b ( r, s )            用$ 0中最左边最长的子串代替s
-Tn_}!z`0s u b s t r ( s , p )     返回字符串s中从p开始的后缀部分
%J.|Bbuq0s u b s t r ( s , p , n ) 返回字符串s中从p开始长度为n的后缀部分51Testing软件测试网"[`gf_ K1i

51Testing软件测试网Q{0Np/kc#xq

Sed常用语句:

ebY,E!x[T1hJ0

r3Dg#{*`O?0表10-1 使用s e d在文件中定位文本的方式
#g6RP A@?/r0x x为一行号,如151Testing软件测试网nYuC5X%tC}G \R
x , y 表示行号范围从x到y,如2,5表示从第2行到第5行51Testing软件测试网@#S A#KZ#Qh
/ p a t t e r n / 查询包含模式的行。例如/ d i s k /或/[a-z]/
6oH a8B/A*J&c3mj-~0/ p a t t e r n / p a t t e r n / 查询包含两个模式的行。例如/ d i s k / d i s k s /
UxO%D kJQSlj0p a t t e r n / , x 在给定行号上查询包含模式的行。如/ r i b b o n / , 351Testing软件测试网je2Y'v%C{}-tJ
x , / p a t t e r n / 通过行号和模式查询匹配行。3 . / v d u /
E8r)W)cc B$OQ0x , y ! 查询不包含指定行号x和y的行。1 , 2 !

ia(B[ yn%h#}J051Testing软件测试网Q^#Nj(q.?}6jXS

编辑命令

/e2j C|tY\1e0A0

(F6xW2`[d,V4~0p 打印匹配行
k1q'l+a2h0= 显示文件行号
b9s-xRYh0a \ 在定位行号后附加新文本信息51Testing软件测试网CI+C2I2aG
i \ 在定位行号后插入新文本信息51Testing软件测试网*d#[aqL
d 删除定位行51Testing软件测试网:Q W!\ptgun"Q)nM
c \ 用新文本替换定位文本51Testing软件测试网IC G6~j)^v
s 使用替换模式替换相应模式51Testing软件测试网f l ^P^9\0L
r 从另一个文件中读文本
8W4go6\T0w 写文本到一个文件51Testing软件测试网-qn5M}?q)i-_
q 第一个模式匹配完成后推出或立即推出51Testing软件测试网Qmg h9s!i1kzw T
l 显示与八进制A S C I I代码等价的控制字符
(l tw8G oN\%x0{ } 在定位行执行的命令组
5sG3z"m ]p#N.g k"A0n 从另一个文件中读文本下一行,并附加在下一行51Testing软件测试网o}"j$W#f%E cd`
g 将模式2粘贴到/pattern n/
~[7l1V C'o'SE0y 传送字符51Testing软件测试网eP u7hM8yc
n 延续到下一输入行;允许跨行的模式匹配语句

bw!N]*Wig0

VJ+g@ Q~^$jG0下面是一些一行命令集。([ ]表示空格, [ ]表示t a b键)51Testing软件测试网k LEB[MX g
‘s / \ . $ / / g’                   删除以句点结尾行51Testing软件测试网P6Fq3W2H0u_Qa"E
‘-e /abcd/d’                        删除包含a b c d的行
]$j qHo%bW0‘s / [ ] [ ] [ ] * / [ ] / g’       删除一个以上空格,用一个空格代替51Testing软件测试网7W!sKTl
‘s / ^ [ ] [ ] * / / g’             删除行首空格
I$N&D8u-Otf#N3k0‘s / \ . [ ] [ ] * / [ ] / g’       删除句点后跟两个或更多空格,代之以一个空格
g s+dkRo0‘/ ^ $ / d’                         删除空行51Testing软件测试网D-OCD*[K8iv
‘s / ^ . / / g’                     删除第一个字符51Testing软件测试网;elG9~T JCj)_ e~
‘s /CO L \ ( . . . \ ) / / g’       删除紧跟C O L的后三个字母51Testing软件测试网y\9G;J3c0SV
‘s / ^ \ / / / g’                   从路径中删除第一个\
]NG"x6S!\:k0‘s / [ ] / [ ] / / g’               删除所有空格并用t a b键替代51Testing软件测试网xb7m/C m%A7cN3U4J~
‘S / ^ [ ] / / g’                   删除行首所有t a b键51Testing软件测试网s\aO/[HjQP
‘s / [ ] * / / g’                   删除所有t a b键51Testing软件测试网(Bqh3k}q

51Testing软件测试网t!gRV2WB!{)@

 

(V PpEP'R051Testing软件测试网Z?[WgD ik

常用正则表达式

/E4o!@L[ }g051Testing软件测试网LZ'h K1\(|fJ

^                  对行首51Testing软件测试网(xTy{{-gS
$                  对行尾51Testing软件测试网W'G&} h\)G
^ [ t h e ]        对以t h e开头行
o$CHC`'f0[ S s ] i g n a [ l L ] 对匹配单词s i g n a l、s i g n a L、
6NH;C"KzO,zrO.k0S i g n a l、S i g n a L51Testing软件测试网5ngi~5V
[Ss]igna[lL]\.          对同上,但加一句点
Z![Wi:|'|] F7J0[ m a y M A Y ]         对包含m a y大写或小写字母的行51Testing软件测试网!q/?$mJ*Tb
^ U S E R $             对只包含U S E R的行51Testing软件测试网E(Y ?5{\y
[tty]$                  对以t t y结尾的行
dk8Tu3L*W2B.@?0\ .                     对带句点的行
$D mpMUT;g0^ d . . x . . x . . x   对对用户、用户组及其他用户组成员有可执行权限的目录
9GJ%kk9S&dYe0^ [ ^ l ]               对排除关联目录的目录列表51Testing软件测试网R q%M X1s T9[)qG
[ . * 0 ]               对0之前或之后加任意字符51Testing软件测试网Jk;Q:RN8td;v
[ 0 0 0 * ]             对0 0 0或更多个51Testing软件测试网 C$x}jZP|#VYH
[ iI]                   对大写或小写I
w p*S4m9F!j0[ i I ] [ n N ]         对大写或小写i或n
? Wb1y3D}7nh.o/[z%H0[ ^ $ ]                 对空行
y&e hD)cM#f#P0[ ^ . * $ ]             对匹配行中任意字符串51Testing软件测试网8};cq,g-@w q
^ . . . . . . $         对包括6个字符的行51Testing软件测试网5oR4i8R+y
[a- zA-Z]               对任意单字符
} e|h}4C7Yl P0[ a - z ] [ a - z ] *   对至少一个小写字母51Testing软件测试网1[\A9eD }
[ ^ 0 - 9 \ $ ]         对非数字或美元标识
B8wgm!EX@}U0[ ^ 0 - 0 A - Z a - z ] 对非数字或字母
gaxZ3N)c pIVo0[ 1 2 3 ]               对1到3中一个数字
:milg5V ?h1?0[ D d ] e v i c e       对单词d e v i c e或D e v i c e
7r*[ AW xL0D e . . c e             对前两个字母为D e,后跟两个任意字符,最后为c e51Testing软件测试网b*O/_m"|%a.v{+ox


TAG:

 

评分:0

我来说两句

Open Toolbar