Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95304
  • 博文数量: 46
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 505
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-22 19:56
文章分类
文章存档

2008年(46)

我的朋友

分类: LINUX

2008-04-23 14:14:47

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
 
 
 
 
 
 
阅读(613) | 评论(0) | 转发(0) |
0

上一篇:linux 下的awk(一)

下一篇:linux下的which命令

给主人留下些什么吧!~~