linuxgawk命令 linux gawk( 三 )


还可以使用-v key=value来自定义变量 。如下:
awk中的条件语句是从C中借鉴过来的
语法:if (condition) {then-body} else {else-body}
例如使用awk来统计某个目录下的普通文件的大小 , 不包括子目录的,并过滤掉目录 。
循环语句也和C中的一样,支持while、do/while、for、continue、break等关键字 。
break和continue常用于循环中;
在awk中,数组的下标可以是数字或字母 。一般awk中的数组的作用是从记录中收集信息,用于计算总和、统计单词等 。
在awk中要删除一个元素的时候使用 delete array[index]
更多请参见awk官方文档[]
gawk 使用方法简介 其功能与特性包括:
gawk options program file
构成 gawk 脚本的语句须包含在一对 大括号 ( {} )中linuxgawk命令,而作为命令选项的整个脚本需要包含在一对 引号 中:
gawk 会自动地将每行文本中的每个 数据字段 赋值给一个指定的变量linuxgawk命令,默认情况下,预先定义的变量为:
文本行中的数据字段是通过预先定义的 字段分隔符 来分隔开的,默认为 空格 (包括TAB)
gawk 语言允许在脚本语句中组合多个命令使用 , 只需要在各命令之间使用 分号 ( ; )分隔开即可
也可以这样:
其中 My name is Rich 是运行时程序获取的用户输入,My name is Christine 是程序运行后的输出
默认情况下 , gawk 从输入中读取一行文本,再对该文本执行程序指令 。而有时候需要在读取待处理数据之前先执行某些指令,此时就要用到 BEGIN 关键字 。
同样的 ,  END关键字允许linuxgawk命令你指定在数据处理完成后才执行的脚本 。
gawk 允许先将其程序脚本保存在某个文件中,再通过-f选项指定该文件的文件名 。而在脚本文件中 , 各命令不再需要通过 ';' 符号分隔,直接分行列出即可 。
程序语言最重要的特性之一就是定义和引用 变量。gawk 语言支持两种类型的变量:内建变量和用户自定义变量 。
gawk 程序在处理文本数据时,一次只读取一小段文本 , 称为Record。默认的 Record 分隔符即为换行符 。而每条 Record 又可进一步划分成 字段 (Data Field) , 并按顺序依次赋值给$1,$2,$n等 。默认的字段分隔符为空格(包括 TAB)
默认的 OFS 为空格
当定义了FIELDWIDTHS变量时 , gawk 在读取数据时就会忽略字段分割符(FS),转而使用 字段宽度 来分割数据 。
有些时候会遇到如下组织方式的文本文件:
此时可将字段分隔符(FS)设置为 "\n",Record 分隔符(RS)设置为空字符串,则 gawk 程序会将 空行 作为一条 Record 的终止点 。
ARGV 的索引是从 0 开始的,表示第一个命令行参数(呃,所以通常就是 gawk 这个命令本身) 。程序脚本(引号中的内容)不算在参数内 。
定义数组: var[index]=element
遍历数组:
匹配符(~)用来对 Record 中的特定字段使用正则表达式 。!~表示不匹配 。
if (condition) statement
for( variable assignment; condition; iteration process)
printf命令格式: printf "format string", var1, var2 . . .
常用格式控制符如下表所示:
除 控制字符 以外,还可以使用另外三种修饰符以对输出进行更多的控制 。
参考下面的示例,%10.1f中的10用于指定字段的最小宽度(右对齐 , 前面用空格补),.1用于指定精确度 。
定义函数
使用函数
函数库
创建函数库
调用函数库
Linux Command Line and Shell Scripting Bible 3rd Edition
linuxgawk命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux gawk、linuxgawk命令的信息别忘了在本站进行查找喔 。

推荐阅读