awk的三种调用方法:
1. 命令方式
awk [-F filed-seperator] 'awk-command' input-files
[-F field-seperator]是可选项,awk通常默认的IFS是空格,如果浏览以空格为域分隔符的文本,则该选项可忽略;但如果浏览像passwd这种以冒号为IFS的文本,则需要加上该选项,如:
awk -F: 'awk-command' input-file
2. 将所有awk命令写入一个文本,首行用#!/bin/awk标示
3.将所有awk命令写入一个文本,然后用awk -f awk-file input-files方式调用
awk处理文本的方式
awk处理文本时,每次读入一行,并利用IFS将该行分隔成不同的域, 如下
3.模式和动作
任何 awk语句都有模式和动作组成。模式部分决定动作语句何时触发及触发事件。动作即对数据进行处理。如果省略模式部分,则动作将时刻保持执行状态。
模式包括两个特殊字段:BEGIN 和 END
实际动作在打括号{}内指明
4. 域和记录
awk执行时,其浏览域标记为$1,$2,$3,......$n。这种方法称为域标识。$0表示所有域。
当读入一个新行时,将重新设置所有域
5.注意点
确保整个awk命令用单引号括起来
确保命令内所有引号成对出现
确保用花括号括起动作语句,用圆括号括起条件语句
6.条件操作符
1. 命令方式
awk [-F filed-seperator] 'awk-command' input-files
[-F field-seperator]是可选项,awk通常默认的IFS是空格,如果浏览以空格为域分隔符的文本,则该选项可忽略;但如果浏览像passwd这种以冒号为IFS的文本,则需要加上该选项,如:
awk -F: 'awk-command' input-file
2. 将所有awk命令写入一个文本,首行用#!/bin/awk标示
3.将所有awk命令写入一个文本,然后用awk -f awk-file input-files方式调用
awk处理文本的方式
awk处理文本时,每次读入一行,并利用IFS将该行分隔成不同的域, 如下
3.模式和动作
任何 awk语句都有模式和动作组成。模式部分决定动作语句何时触发及触发事件。动作即对数据进行处理。如果省略模式部分,则动作将时刻保持执行状态。
模式包括两个特殊字段:BEGIN 和 END
实际动作在打括号{}内指明
4. 域和记录
awk执行时,其浏览域标记为$1,$2,$3,......$n。这种方法称为域标识。$0表示所有域。
当读入一个新行时,将重新设置所有域
5.注意点
确保整个awk命令用单引号括起来
确保命令内所有引号成对出现
确保用花括号括起动作语句,用圆括号括起条件语句
6.条件操作符
- 匹配:为使域匹配正则表达式,使用符号“~”后紧跟正则表达式,也可使用if语句。awk中if语句的条件必须用()括起来,如:$awk '{if($4~/Brown/) print $0}' data.file
- 精确匹配:$awk '{if($4=="Brown") print $0}' data.file