gawk快速指南

gawk是awk的GNU版本,采用编程语言的形式

gawk命令格式

gawk options program file

选项

-F fs 指定用于分隔行中数据段的文件分隔符

-f file 读取程序文件名

-v var=value 定义变量及默认值

-mf N 指定处理数据文件中最大字段数

-mr N 指定数据文件最大记录数

-w keyword 指定兼容模式或警告等级

使用gawk

可以直接在命令行或shell脚本中使用gawk

从命令行上读取程序脚本

单引号和花括号包住

例子:gawk '{print $1}'

在程序脚本中使用多条命令

在每个命令之间放一个分号

从文件中读取

-f file

处理数据前运行脚本

BEGIN. 先执行BEGIN后面指定的程序脚本再读取数据

处理数据后运行脚本

END

gawk变量

1.内建变量

记录是一行数据;数据字段是运行中独立的数据元素默认空白字符分隔

$0 整条记录

$1 第一个数据字段

$n 第n个数据字段

FIELDWIDTHS 定义了每个字段具体宽度

FS 输入字段分隔符

RS 输入记录分隔符

OFS 输出字段分隔符

ORS 输出记录分隔符

更多内建变量

ARGC 当前命令行参数个数

ARGIND 当前文件在ARGV中的索引

ARGV 包含命令行参数的数组

CONVFMT 数字转换格式,默认%.6

ENVIRON 由当前shell环境变量及值组成的关联数组

ERRNO 系统错误号

FILENAME 输入文件名

FNR 当前数据文件记录数

IGNORECASE 设成非零时,忽略大小写

NF 字段总数

NR 已处理的记录数

OFMT 数字输出格式

RLENGTH 由match函数匹配的子串长度

RSTART 由match函数匹配的子串起始位置

gawk程序特性

1.正则表达式

必须出现在它作用的程序代码的左花括号之前

2.匹配操作符

~ 允许将正则表达式限定在特定的字段上

3.数学表达式

4.结构化命令

类似C语言

if (condition) statement1; else statement2

while (conditon) {

statement

}

do {

statement

} while (conditon)

for (variable assignment; condition; iteration process) {}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,184评论 1 19
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,214评论 2 33
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • 夜幕渐渐低垂了下来,只是星星还没有出来,许是因为前两天下雨的缘故,云层太厚,星光撒不下来。 不过在街道两边的高楼里...
    时间如梦阅读 435评论 3 1
  • 还记得在2013年4月6日那天,我在上海书城闲逛,突然广播里传来这样的声音:“程龙的《演讲达人成长记》签售会马上就...
    Tina新星阅读 366评论 0 3