awk编程
Posted LeoSanford
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk编程相关的知识,希望对你有一定的参考价值。
1 awk编程模型
2 awk用法
调用awk有三种方法(与sed类似):
- 在Shell命令行输入命令调用awk,格式为:
awk [-F 域分隔符] ‘awk程序段’ 输入文件
- 将awk程序段插入脚本文件后,然后通过awk命令调用它:
awk -f awk脚本文件输入文件
- 将awk命令插入脚本文件后,最常用的方法是设置该脚本文件为可执行,然后直接执行该脚本文件,格式为:
./awk脚本文件输入文件
注:第二种方法脚本文件的首行不以#!/bin/awk –f开头;第三种方法脚本文件的首行是#!/bin/awk –f
3 awk编程示例
3.1 awk模式匹配
awk语句由模式(pattern)和动作(action)组成。模式决定动作何时触发和触发事件,动作执行对输入行的处理。
模式部分:^$,是正则表达式,表示空白行;
动作部分:花括号中的部分,打印操作。
3.2 记录和域
awk认为输入文件是结构化的,awk将每个输入文件行定义为记录,行中的每个字符串定义为域,域之间用空格、Tab键或其他符号进行分割,分割域的符号就叫分隔符。
打印第一、二哥域
3.3 关系和布尔运算符
关系运算符
运算符 | 意义 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
== | 等于 |
!= | 不等于 |
~ | 匹配正则表达式 |
!~ | 不匹配正则表达式 |
布尔运算符
运算符 | 意义 |
|| | 逻辑或 |
&& | 逻辑与 |
! | 逻辑非 |
打印/etc/passwd中第一个域匹配root关键字的记录
3.4 表达式
运算符 | 意义 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 模 |
^或** | 乘方 |
++x | 在返回x值之前,x变量加1 |
x++ | 在返回x值之后,x变量加1 |
3.5 格式化输出
awk借鉴C语言的语法,定义了printf输出语句,它可以规定输出的格式
修饰符 | 意义 |
- | 左对齐 |
width | 域的步长 |
.prec | 小数点右边的位数 |
运算符 | 意义 |
%c | ASCII字符 |
%d | 整型数 |
%e | 浮点数,科学记数法 |
%f | 浮点数 |
%o | 八进制数 |
%s | 字符串 |
%x | 十六进制数 |
打印第一个域的内容
以上是关于awk编程的主要内容,如果未能解决你的问题,请参考以下文章