1.内置变量

变量名 描述
FS 输入字段分隔符,默认是空格或制表符
OFS 输出字段分隔符,默认是空格
RS 输入记录分隔符,默认是换行符\n
ORS 输出记录分隔符,默认是换行符\n
NF 统计当前记录中字段个数
NR 统计记录编号,每处理一行记录,编号就会+1
FNR 统计记录编号,每处理一行记录,编号也会+1,与 NR 不同的是,处理第二个 文件时,编号会重新计数。
ARGC 命令行参数数量
ARGV 命令行参数数组序列数组,下标从 0 开始,ARGV[0]是 awk
ARGIND 当前正在处理的文件索引值。第一个文件是 1,第二个文件是 2,以此类推
ENVIRON 当前系统的环境变量
FILENAME 输出当前处理的文件名
IGNORECASE 忽略大小写
SUBSEP 数组中下标的分隔符,默认为"\034"

1.1. FS和OFS

程序开始前复制给FS,与-F一样用

[root@192 ~]# head -n5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@192 ~]#
[root@192 ~]# head -n5 /etc/passwd|awk 'BEGIN{FS=":"}{print $1,$2}'
root x
bin x
daemon x
adm x
lp x
OFS由于默认是空格,输出如果是:,那么逗号会变为*
[root@192 ~]# head -n5 /etc/passwd|awk 'BEGIN{FS=":";OFS="*"}{print $1,$2}'
root*x
bin*x
daemon*x
adm*x
lp*x

1.2. RS和ORS

RS默认\n,指定分割符 ,ORS默认换行符,也可以指定输出符号
也就是说 将分割符换成你想要的样子 [root@192 ~]# tail -n2 /etc/services |awk 'BEGIN{RS="/";ORS="+"}{print $0}'
iqobject 48619+udp # iqobject
matahari 49000+tcp # Matahari Broker

1.3. NF

字段统计
[root@192 ~]# tail -n2 /etc/services |awk 'BEGIN{FS="/"}{print $NF}'
tcp # 3GPP Cell Broadcast Service Protocol
tcp # Image Systems Network Services [root@192 ~]# tail -n 2 /etc/services |awk 'BEGIN{FS="/"}{print NF}'
2
2

最新文章

  1. 前端学HTTP之客户端识别和cookie
  2. 配置php.ini实现PHP文件上传功能
  3. redis非特定类型命令
  4. Hibernate不能自动建表解决办法
  5. JavaScript的学习--JavaScript设计模式的总结
  6. dplyr包--数据操作与清洗
  7. word2010插入奇数页 使奇偶页不同的问题
  8. [Java] 内部类的用法
  9. C++ 读取 pcap文件.
  10. kindeditor-4.1.10 结合 Asp.Net MVC 添加图片功能
  11. Google Guava的splitter用法
  12. jquery中的on事件
  13. 第一个使用Writer写的博客
  14. [JQuery] Ajax使用过程中的问题总结
  15. js页面间通信方法(storage事件)(浏览器页面间通信方法)
  16. C# Type.GetType 返回NULL 问题解决记录
  17. c2d遮罩
  18. 【洛谷P1717】钓鱼
  19. Json3:使用gson做节点解析
  20. Sql server 的float和real类型会产生科学计数法,如何消除科学计数法

热门文章

  1. nginx动静分离与网关
  2. webpack收藏
  3. Filter&Listener笔记
  4. Cross-Origin-Resource-Sharing-Solutions
  5. vue梳理(2)
  6. 新手使用GIT 上传文件到github
  7. 基于Kintex Ultrasacle的万兆网络光纤 PCIe加速卡416 光纤PCIe卡
  8. Python自动化学习--鼠标和键盘事件
  9. python面向对象--元类
  10. vimdiff 可视化比较工具