gawk

gawk基本使用

gawk options program file

  • gawk -F '{commond1;command2}'
  • gawk -F -f script_file text
    script_file:
{
  command1
  command2
}

gawk的内建变量

  • FIELDWIDTHS 空格分开,确切指定了每一个字段的宽度
  • FS 输入字段分隔符(-F)
  • RS 输入数据行分隔符
  • OFS 输出字段分隔符
  • ORS 输出行分隔符
  • FNR 当前数据文件数据行数量
  • NR 累计处理的数据行数量
  • NF 当年数据行中字段总数

默认RS和ORS都是换行符

自定义变量

  • var='test'
  • var=4

在命令行给变量赋值

gawk -f script n=2 text
变量n的取值就是2
如果要在BEGIN块让命令行赋值生效,需要加上-v参数,在-f script之前

数组

arr[index]=value
index可以是字符串,也可以是数字

遍历数组

for (var in array) { command }
var是index

删除元素

delete arr[index]

正则匹配

行匹配

  • gawk '/regex/{command}'

字段匹配

  • gaw '$x ~ /regex/{command}'
  • gaw '$x !~ /regex/{command}'

if

  • if (condition) command; else command
  • 多行if
if (condition) {
  command1
  command2
} else {
  command3
  command4
}

while

while (condition) {
  command...
}

do while

和C一样

for

和C一样

定义函数

function name([vars]) {
  statsments
}

最好放在BEGIN之前。

内建函数

数学和字符串两类,参考man page(Numeric Functions和String Functions)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容