第三章编程工具awk什么是awk是一种程序设计语言,主要用来处awk理数据和产生报表它对输入数据(文件、标准输入或命令的输出)逐行进行扫描,匹配指定的模式,并执行指定的操作
第三章 编程工具awk 什么是awk awk 是一种程序设计语言, 主要用来处 理数据和产生报表. 它对输入数据(文件、标准输入或命令 的输出)逐行进行扫描,匹配指定的模式, 并执行指定的操作
二.awk的基本格式1.语法格式awk 'pattern {action'filenameawk扫描filename中的每一行,,对符合模式pattern的行执行操作action特例①awk 'pattern' filename显示所有符合模式pattern的行awk{action'filename对所有行执行操作action
二. awk的基本格式 1. 语法格式 awk ‘pattern {action}’ filename awk扫描filename中的每一行, 对符合模式 pattern的行执行操作action. 特例: ① awk ‘pattern’ filename 显示所有符合模式pattern的行 ② awk ‘{action}’ filename 对所有行执行操作action
2.应用实例:(pp. 81)$cat employeesTomJones44245/12/66543354Mary Adams543611/4/63 28765Sally Chang 1654 7/22/54 650000BillyBlack16839/23/44336500Sawk /Maryl"employeesMaryAdams543611/4/6328765Sawk print $1)" employeesTomMarySallyBilly$awk /Sally/ (print $1 $2}" employeesSally Chang
2. 应用实例:(pp. 81) $cat employees Tom Jones 4424 5/12/66 543354 Mary Adams 5436 11/4/63 28765 Sally Chang 1654 7/22/54 650000 Billy Black 1683 9/23/44 336500 $awk ‘/Mary/’ employees Mary Adams 5436 11/4/63 28765 $awk ‘{print $1}’ employees Tom Mary Sally Billy $awk ‘/Sally/ {print $1 $2}’ employees Sally Chang
3.从其它命令输入格式:command|awk'patterncommand| awk(action)awk'pattern (action)command实例:Swhozhanglan tty01 Jan 12 18:36yuexi tty02 Jan1217:03liuzhen tty15 Jan12 08:45Swho|awk/tty01/(printS1}'(谁在1号终端上)zhanglan
3. 从其它命令输入 格式: command | awk ‘pattern’ command | awk ‘{action}’ command | awk ‘pattern {action}’ 实例: $who zhanglan tty01 Jan 12 18:36 yuexi tty02 Jan 12 17:03 liuzhen tty15 Jan 12 08:45 $who | awk ‘/tty01/ {print $1}’ (谁在1号终端上) zhanglan
4.从标准输入设备(键盘)输入格式:awk'pattern {action)由于未指定输入数据来源,缺省情况下从标准输入设备(键盘)读取数据.键盘上每输入一行,awk就处理一行,直到遇到D为止例如:$ awk /aaa/ print $O, NF!查找包含字符串aaabbbb bbbbb bbbbb的行,打印整行内容和这行包含的域数aaaa aaaaaa aa aaaaaaaaaa aaaaaa aa aaaaaa 4(awk的输出行)xxx xxxxx yyyyyyy xyz^D
4. 从标准输入设备(键盘)输入 格式: awk ‘pattern {action}’ 由于未指定输入数据来源, 缺省情况下从标准输入 设备(键盘)读取数据. 键盘上每输入一行, awk就处 理一行, 直到遇到^D为止. 例如: $ awk ‘/aaa/ {print $0, NF}’ bbbb bbbbb bbbbb aaaa aaaaaa aa aaaaaa aaaa aaaaaa aa aaaaaa 4 (awk的输出行) xxx xxxxx yyyyyyy xyz ^D 查找包含字符串aaa 的行,打印整行内容 和这行包含的域数