awk 非常善于处理分成多个逻辑字段的文本,还可以引用 awk 脚本中每个独立的字段。 打印系统上所有用户帐户的列表: $ awk -F":" '{ print $1 }' /etc/passwd 上例中,调用awk时,使用 -F 选项来指定 ":" 作为字段分隔符。awk 处理 print $1 命令时,它会打印出在输入文件中每一行中出现的第一个字段。 以下是另一示例: $ awk -F":" '{ print $1 $3 }' /etc/passwd 以下是该脚本输出的摘录: halt7 operator11 root0 shutdown6 sync5 bin1 ....etc. 如您所见,awk 打印出 /etc/passwd 文件的第一和第三个字段,它们正好分别是用户名和用户标识字段。现在,当脚本运行时,它并不理想--在两个输出字段之间没有空格!如果习惯于使用 bash 或 python 进行编程,那么您会指望 print $1 $3 命令在两个字段之间插入空格。然而,当两个字符串在 awk 程序中彼此相邻时,awk 会连接它们但不在它们之间添加空格。以下命令会在这两个字段中插入空格: $ awk -F":" '{ print $1 " " $3 }' /etc/passwd 以这种方式调用 print 时,它将连接 $1、" " 和 $3,创建可读的输出。 还可以插入一些文本标签: $ awk -F":" '{ print "username: " $1 "ttuid:" $3" }' /etc/passwd 这将产生以下输出: username: halt uid:7 username: operator uid:11 username: root uid:0 username: shutdown uid:6 username: sync uid:5 username: bin uid:1 ....etc. (责任编辑:IT) |