实例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