学习的内容来自于Linux Shell脚本攻略(2)
内容只做了简单的记录,方便自己学习
shell 命令查询地址:http://man.linuxde.net/
awk
awk的灵活性十分的高,它是一款用于设计数据流的工具,最方便的操作是对数据的行和列的操作
基本结构如下
awk 'BEGIN {print 'start'} pattern {commands } END{print 'end'} file
工作原理:
1)执行BEGIN{commadns}语句块中的语句
2)从文件或stdin中读取一行,然后执行pattern{commands}。重复这个过程直到文件全部被读取完
- 当读至输入流末尾时,执行END{commadns}语块
Begin语句块在awk开始从输入流中读取之前就已经被执行,这是一个可以选择的语块,当我们需要初始化我们的输出内容的时候,就可以选择比如表单的表头
END语句块是在awk从输入流中读取完所有行之后执行的,这也是一个可以选择的语句块
pattern 语句块 默认执行{print} 即打印读取到的每一行
每读取一行,awk就会检查该行和提供的样式是否匹配,如果匹配则执行{}中的语句
awk的特殊变量
NR:表示记录数量,在执行过程中对应于当前行号
NF:表示字段数量(变量) 在执行过程中对应于当前行的字段数
$0:这个变量包含执行过程中当前行的文本内容
$1:这个变量包含第一个字段的文本内容
$2:这个变量包含第二个字段的文本内容
这里可以看他,他会把,左右的字段判断成为一个字段
$NF 表示这一行的最后一个字段 ${NF-1}倒数第二个字段