awk中的环境变量:主要有NR,NF,FILENAME
NR表示行分割域,NF表示已经读取的行数,FILENAME表示文件名。
如 $ awk 'END{print NR,FILENAME}' file
结果:
3 file
awk中也可以设置变量,如
$ awk '{name=$2; if(nmae == "nm") print name}' file
结果:
nm
(2) 使用awk修改字符串:
awk有一些内置处理字符串的函数:
g s u b函数有点类似于s e d查找和替换。它允许替换一个字符串或字符为另一个字符串或字符,并以正则表达式的形式执行。第一个函数作用于记录$ 0,第二个g s u b函数允许指定目标,然而,如果未指定目标,缺省为$ 0。
i n d e x(s,t)函数返回目标字符串s中查询字符串t的首位置。l e n g t h函数返回字符串s字符长度。
m a t c h函数测试字符串s是否包含一个正则表达式r定义的匹配。s p l i t使用域分隔符f s将字符串s划分为指定序列a。
s p r i n t函数类似于p r i n t f函数(以后涉及),返回基本输出格式f m t的结果字符串e x p。
s u b(r,s)函数将用s替代$ 0中最左边最长的子串,该子串被( r)匹配。
s u b(s,p)返回字符串s在位置p后的后缀。s u b s t r(s,p,n)同上,并指定子串长度为n。
例如
echo "dream" | awk '{print length($0)}'
结果: 5
阅读(641) | 评论(0) | 转发(0) |