第22章 gawk进阶
来源:互联网 发布:手写图片识别软件 编辑:程序博客网 时间:2024/04/30 13:22
22.1 使用变量
22.1.1 内建变量
1 字段和记录分隔符变量
2 数据变量
ARGC和ARGV变量允许从shell中获得命令行参数的总数以及它们的值。
ENVIRON变量使用关联数组来提取shell环境变量。
NF变量可以让你在不知道具体位置的情况下指定记录中的最后一个数据字段。
FNR变量含有当前数据文件中已处理过的记录数。
NR变量则含有已处理过的记录总数。
22.1.2 自定义变量
1 在脚本中给变量赋值
赋值语句还可以包含数学算式来处理数字值。
2 在命令行上给变量赋值
-v选项运行在BEGIN代码之前设定变量
22.2 处理数组
gawk编程语言使用关联数组提供数组功能。用各种字符串来引用值。
22.2.1 定义数组变量
赋值变量格式:
var[index] = element
22.2.2 遍历数组变量
for (var in array)
{
statemetns
}
22.2.3 删除数组变量
delete array[index]
22.3 使用模式
22.3.1 正则表达式
22.3.2 匹配操作符
匹配操作符允许将正则表达式限定在记录中的特定数据字段。匹配操作符是波浪线(~)。可以指定匹配操作符、数据字段变量以及要匹配的正则表达式。
$1 ~ /^data/
22.3.3 数学表达式
22.4 结构化命令
22.4.1 if语句
if (condition)
statement1
或
if (condition) statement1
22.4.2 while语句
while(condition)
{
statements
}
gawk编程语言支持在while循环中使用break语句和continue语句,允许你从循环中跳出。
22.4.3 do-while语句
22.5 格式化打印
printf命令的格式:(和c语言用法一样)
printf “format string”,var1,var2 …
format string会用文本元素和格式化指定符来具体指定如何呈现格式化输出。
格式化指定符采用如下格式:
%[modifier]control-letter
gawk ‘BEGIN{
x = 10 * 100
printf “The answer is: %e\n”, x
}’
3中修饰符:
*width : 指定了输出字段最小宽度的数字值
*prec:指定浮点数中小数点后面位数
-(减号):指明在向格式化空间中放入数据时采用左对齐而不是右对齐。
gawk ‘BEGIN{FS=”\n”,RS=”“}{printf “%-16s %s\n”,
22.6 内建函数
22.6.1 数学函数
22.6.2 字符串函数
22.6.3 时间函数
22.7 自定义函数
22.7.1 定义函数
function name([variables])
{
statements
}
22.7.2 使用自定义函数
gawk ’
function myprint()
{
printf “%-16s - %s\n”,
}
BEGIN{FS=”\n”;RS=”“}
{
myprint()
}
’ data2
22.7.3 创建函数库
cat funclib
function myprint()
{
printf “%-16s - %s\n”,
}
cat script4
BEGIN{ FS=”\n”; RS=”“}
{
myprint()
}
gawk -f funclib -f script4 data2
22.8 实例
cat scores.txt
Rich Blum,team1,100,115,95
Barbara Blum,team1,110,115,100
Christine Bresnahan,team2,120,115,118
Tim Bresnahan,team2,125,112,116
cat bowling.sh
!/bin/bash
for team in
{
if(2==team)
{
total +=3 +
}
}
END {
avg = total / 6;
print “Total for”,team,”is”,total,”,the average is”,avg
}’scores.txt
done
22.9 小结
第24章 编写简单的脚本使用工具
- 第22章 gawk进阶
- 第19章 初始sed和gawk
- gawk入门及进阶
- 第7章 sed、gawk介绍与正则表达式-----------(gawk编辑器简单使用)
- gawk
- gawk
- gawk
- gawk
- gawk
- gawk
- gawk
- gawk
- 第7章 sed、gawk介绍与正则表达式-----------(sed编辑器简单使用)
- 第7章 sed、gawk介绍与正则表达式-----------(sed编辑器基础知识)
- 第7章 sed、gawk介绍与正则表达式-----------(正则表达式定义与类型)
- 第7章 sed、gawk介绍与正则表达式-----------(定义基本正则表达式(BRE)模式)
- 第7章 sed、gawk介绍与正则表达式-----------(扩展的正则表达式)
- 第21章 sed进阶
- 【C++解题报告】求组合数(定义函数)
- js post 清除REFERER 来路,全网首发
- Centos7 下禁用Mysql密码的强度加强validate_password插件
- 80x86微处理器第三章总结
- 【Java工具类】Runtime 例如,JAVA虚拟机在运行时,最大内存是多少
- 第22章 gawk进阶
- CSS几种居中方式
- NFS服务
- 大数据与智能技术
- python学习资料
- bug宝典JAVA篇 Caused by: org.quartz.JobPersistenceException: Couldn't store trigger
- error: unknown host service adb
- caffe在centos中艰难的安装
- uWSGI + Flask + MongoDB遇到的那些坑