Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65945
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 18
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-17 22:52
文章分类
文章存档

2017年(17)

我的朋友

分类: LINUX

2017-05-06 19:29:39

原文地址:awk之NF的妙用 作者:zooyo

   在awk中大家都知道NF的作用,它是一个awk的内建变量,代表是每行的字段数量。常用的几种方式我给大家慢慢到来。最多的就是在读取每个字段内容 for(i=1;i<=NF;i++) 这个运用非常之多。我们看看高级的几个高级用法:
  1. $ cat file
  2. a b c d
  3. 1 2 3 4
  4. $ awk -vOFS="|" 'NF+=0' file
  5. a|b|c|d
  6. 1|2|3|4

[解析]

  替换字段分割符,必须要对字段有个action才能使OFS生效,这里我们运用 NF+=0 的方法,即有了操作,而并为改变其原有的值,很巧妙吧。

 

  1. $ cat file
  2. aa
  3. bb

  4. cc

  5. dd
  6. $ awk NF file
  7. aa
  8. bb
  9. cc
  10. dd

[解析]

  排除空行,因为空行NF=0,0为假不会打印该行。

 

 

 

  1. cat file
  2. a b c d e f
  3. 1 2 3 4
  4. awk 'NF-=2' file
  5. a b c d
  6. 1 2
  7. awk '{for(i=3;i<NF;i++)printf("%s ",$i);print $NF}' file
  8. c d e f
  9. 3 4

 

[解析]

  不输出后面2个字段和前面2个字段。

阅读(1418) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~