awk
时间:2009-06-03 来源:zhangliu510
awk
1. 什么awk
awk是一种具有编程功能的文本处理工具,通过awk可提取、修改或删除文本内容
2. 使用awk的方法
(1) 在命令行中执行
#awk '程序' 文本文件
(2) 调用awk脚本文件
#awk -f 脚本文件 文本文件
(3) 直接执行awk脚本文件
#awk脚本文件路径 文本文件
3. 认识文本文件的记录和字段
(1) 以指定的记录分隔符结束的内容即为记录,默认记录分隔符为换行符($0代表记录)
(2) 以指定的字段分隔符结束的内容即为字段,默认字段分隔符为空格($1---$n代表第几个字段)
4. awk提供的运算符
(1) 算术运算符:+ - *、/ %(取余) ^(乘方)
(2) 关系运算符:< > <= >= == != ~(匹配) !~(不匹配)
(3) 逻辑运算符:&& || !
(4) 赋值运算符:= += -= *= /= %= ^=
(5) 自增、自减运算符:++ --
(6) 数组引用:in
5. awk的变量和函数
(1) 自定义变量
awk变量分为数值型和字符型,用户引用变量时即定义了变量,变量类型由变量内容决定,引用变量时不用加$
(2) awk提供的内置变量
-NR:当前记录数
-NF:当前记录中的字段个数
-FS:字段分隔符
-RS:记录分隔符
-OFS:输出字段分隔符
-ORS:输出记录分隔符
(3) awk提供的函数
-字符串函数
sub(..) 替换指定字符串
length(..) 求字符串的长度
index(..) 求字串在指定字符串中的位置
substr(...) 取子串
tolower(...) 大写字符转为小写字符
toupper(...) 小写字符转为大写字符
-日期时间函数
systime() 返回系统日期和时间
strftime(....) 返回格式化的日期或时间
-数学函数
cos(x) 余弦
sin(x) 正弦
rand() 随机数
int (x) 取整
sqrt(x) 取平方根 6. awk中常用的编程语句
(1) print
作用:输出指定字符/表达式
实例:#awk '{print $0}' /etc/passwd
(2) printf
作用:格式化输出指定字符/表达式
实例:#awk -F: '{printf "username:%s\n",$1}' /etc/passwd
(4) if
作用: 实现条件判断
格式: if (条件表达式)
{
....
}
[else {.....}]
实例:#awk -F: '{if {$3==0} {print $0}}' /etc/passwd
(5) for
作用: 实现循环
格式: for (初值;条件表达式;增量) {循环体}
实例:#awk -F: '{for (i=1;i<=5;i++) { print $i}}' /etc/passwd
(6) while
作用: 实现循环
格式: while (条件表达式) {
循环体
}
实例:#awk -F: '{i=1;while (i<=5) {print $i}}' /etc/passwd
(7) break
退出循环
(8) continue
继续下一次循环
(9) exit
退出awk程序
(10) next
读取下一条记录
(11) BEGIN
作用: 定义读取文件前要执行的操作
格式:BEGIN {....}
(12) END
作用:定义读取文件结束后要执行的操作
格式:END {....}
1. 什么awk
awk是一种具有编程功能的文本处理工具,通过awk可提取、修改或删除文本内容
2. 使用awk的方法
(1) 在命令行中执行
#awk '程序' 文本文件
(2) 调用awk脚本文件
#awk -f 脚本文件 文本文件
(3) 直接执行awk脚本文件
#awk脚本文件路径 文本文件
3. 认识文本文件的记录和字段
(1) 以指定的记录分隔符结束的内容即为记录,默认记录分隔符为换行符($0代表记录)
(2) 以指定的字段分隔符结束的内容即为字段,默认字段分隔符为空格($1---$n代表第几个字段)
4. awk提供的运算符
(1) 算术运算符:+ - *、/ %(取余) ^(乘方)
(2) 关系运算符:< > <= >= == != ~(匹配) !~(不匹配)
(3) 逻辑运算符:&& || !
(4) 赋值运算符:= += -= *= /= %= ^=
(5) 自增、自减运算符:++ --
(6) 数组引用:in
5. awk的变量和函数
(1) 自定义变量
awk变量分为数值型和字符型,用户引用变量时即定义了变量,变量类型由变量内容决定,引用变量时不用加$
(2) awk提供的内置变量
-NR:当前记录数
-NF:当前记录中的字段个数
-FS:字段分隔符
-RS:记录分隔符
-OFS:输出字段分隔符
-ORS:输出记录分隔符
(3) awk提供的函数
-字符串函数
sub(..) 替换指定字符串
length(..) 求字符串的长度
index(..) 求字串在指定字符串中的位置
substr(...) 取子串
tolower(...) 大写字符转为小写字符
toupper(...) 小写字符转为大写字符
-日期时间函数
systime() 返回系统日期和时间
strftime(....) 返回格式化的日期或时间
-数学函数
cos(x) 余弦
sin(x) 正弦
rand() 随机数
int (x) 取整
sqrt(x) 取平方根 6. awk中常用的编程语句
(1) print
作用:输出指定字符/表达式
实例:#awk '{print $0}' /etc/passwd
(2) printf
作用:格式化输出指定字符/表达式
实例:#awk -F: '{printf "username:%s\n",$1}' /etc/passwd
(4) if
作用: 实现条件判断
格式: if (条件表达式)
{
....
}
[else {.....}]
实例:#awk -F: '{if {$3==0} {print $0}}' /etc/passwd
(5) for
作用: 实现循环
格式: for (初值;条件表达式;增量) {循环体}
实例:#awk -F: '{for (i=1;i<=5;i++) { print $i}}' /etc/passwd
(6) while
作用: 实现循环
格式: while (条件表达式) {
循环体
}
实例:#awk -F: '{i=1;while (i<=5) {print $i}}' /etc/passwd
(7) break
退出循环
(8) continue
继续下一次循环
(9) exit
退出awk程序
(10) next
读取下一条记录
(11) BEGIN
作用: 定义读取文件前要执行的操作
格式:BEGIN {....}
(12) END
作用:定义读取文件结束后要执行的操作
格式:END {....}
相关阅读 更多 +