Linux高级文本处理之gawk语法和基础命令(2)

实例1:不带参数

[root@localhost ~]# awk '{print}' emp 101,John Doe,CEO 102,Jason Smith,IT Manager 103,Raj Reddy,Sysadmin 104,Anand Ram,Developer 105,Jane Miller,Sales Manager

实例2:也可以通过传递变量”$字段序号”作为 print 的参数来指定要打印的字段。

[root@localhost ~]# awk '{print $2}' ./emp  #默认以空格为分隔符 Doe,CEO Smith,IT Reddy,Sysadmin Ram,Developer Miller,Sales

实例3:输出雇员姓名与职位

[root@localhost ~]# cat emp 101,John Doe,CEO 102,Jason Smith,IT Manager 103,Raj Reddy,Sysadmin 104,Anand Ram,Developer 105,Jane Miller,Sales Manager [root@localhost ~]# awk ' >BEGIN{FS=",";print "-------\nNAME  Title\n--------\n"} >{print $2,"\t",$3}  #打印多变量,之间用逗号或者空格分隔 >END{print "----------------"}' emp ------- NAME  Title -------- John Doe         CEO Jason Smith      IT Manager Raj Reddy        Sysadmin Anand Ram        Developer Jane Miller      Sales Manager ----------------

说明:请注意, $0 代表整条记录。 下面两个命令是等价的,都打印 employee.txt 的所有行:

awk '{print}' emp awk '{print $0}' emp 四、模式匹配

只在匹配特殊模式的行数执行 awk 命令。

实例1:只处理匹配行

[root@localhost ~]# awk -F, '/Manager/{print $2,$3}' emp Jason Smith IT Manager Jane Miller Sales Manager

实例2:只打印雇员 id 为 102 的雇员的信息

[root@localhost ~]# awk -F, '/^102/{print "Emp is 102 is",$2}' emp  Emp is 102 is Jason Smith

本文永久更新链接地址

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14366.html