一、awk基本操作

awk指定多个分割符,分隔符中有:和空格,还有:和空格的组合,这个时候需要指定多个分隔符 -F'[ :]+',[ :]表示分隔符为:和空格,一个或者多个+号表示空格和:的组合也为一个分隔符

打印倒数第一列,以空格和:and空格 “:”的组合为分隔符
[root@VM_0_84_centos ~]# cat aaa |awk -F'[: ]+' '{print $NF}'
number #打印倒数第二列,以空格和:and空格 “:”的组合为分隔符
[root@VM_0_84_centos ~]# cat aaa |awk -F'[: ]+' '{print $(NF-1)}'
age

假如分隔符为空格,打印第一列    $1为第一列的数据   $0打印整个文件的内容

cat aaa |awk '{print $1}'

二、awk的NR、NF内置变量的应用

NF变量的使用:打印文件的字段数,NF指的是字段的数量,有时候由于文本数据量太大,而且字段切分不规则,会导致使用 '{print $n}'取值会出现错误,建议使用NF来取响应的字段

[root@VM_0_84_centos ~]# cat aaa
name: age number
ghd
gym
[root@VM_0_84_centos ~]# cat aaa |awk '{print NF}' [root@VM_0_84_centos ~]# cat aaa |awk '{print $NF}'
number [root@VM_0_84_centos ~]# cat aaa |awk '{print $(NF-2)}'
name:
ghd
gym
[root@VM_0_84_centos ~]# cat aaa |awk '{print NF}'

NR变量:打印文件的行的内容

#打印文件的第二行内容
[root@VM_0_84_centos ~]# cat test.txt |awk 'NR==2{print $0}'
ghd #打印文件的第二行第一个列(字段)的内容
[root@VM_0_84_centos ~]# cat test.txt |awk 'NR==2{print $1}'
ghd #打印大于第一行小于第三行的所属行的所有字段,$n为字段数(列)
cat test.txt |awk 'NR>1&&NR<3{print $0}'
ghd #不打印第二行的其它行的所有字段
[root@VM_0_84_centos ~]# cat test.txt |awk 'NR!=2{print $0}'
name: age number
gym

练习:

打印文件所有内容,并显示文件内容所属行和字段

 cat test.txt |awk -F'[ :]+' '{print NR,NF,$0}'
name: age number
ghd
gym

最新文章

  1. HP-SOCKET TCP/UDP通信框架库解析
  2. python 引用传递与值传递
  3. 安装node-sass提示没有vendor目录的解决办法
  4. JSP Servlet的区别
  5. C的文件操作
  6. 解剖SQLSERVER 第四篇 OrcaMDF里对dates类型数据的解析(译)
  7. Android自定义控件2--优酷菜单界面初始化
  8. html与jsp
  9. 2017年1月6日 星期五 --出埃及记 Exodus 21:32
  10. 关于http断点续传相关的RANGE这个header
  11. 火狐和ie下获取javascript 获取event
  12. Linux bash shell脚本语法入门
  13. dfs和bfs的简单总结
  14. java 静态方法分析
  15. 18_Python列表常用方法总结
  16. [转帖]KMS 是什么 以及 优缺点
  17. tensorflow object detection
  18. 如何利用jsp实现防盗链功能
  19. Lower Power with CPF(二)
  20. ArchLinux - 安装指南

热门文章

  1. Ext.net资源地址
  2. ASP.NET Web API 2 之文件下载
  3. 【LeetCode】335. Self Crossing(python)
  4. PHP中使用jQuery+Ajax实现分页查询多功能操作
  5. SaltStack 理解
  6. 怎么从docker 内部去连接host 上的mysql
  7. oracle.sql.TIMESTAMP转为java.sql.TIMESTAMP的方法
  8. python栈
  9. mysql常用命令及语法规范
  10. json对象转数组