美文网首页
再探gawk

再探gawk

作者: 食梦狸猫 | 来源:发表于2019-04-10 17:30 被阅读0次

使用变量

  • 内建变量
    内建变量FS和OFS分别是输入字段分隔符和输出字段分隔符。
echo "1,2,3" | gawk 'BEGIN{FS=","; OFS="-"}{print $1,$2,$3}'

FIELDWIDTHS变量允许不靠字段分隔符来读取记录。根据提供的字段宽度来计算字段。

echo "12345" | gawk 'BEGIN{FIELDWIDTHS="2,3"}{print $1,$2}'
  • 自定义变量
    在脚本中给变量赋值
gawk 'BEGIN{testing="this is a test"; print testing}'

处理数组

  • 定义数组变量
gawk 'BEGIN{capital["abc"] = "def"; print capital["abc"]}'

gawk 'BEGIN{var[1]=34; var[2]= 3; var[3]=var[1]+var[2]}'

-遍历数组变量

gawk 'BEGIN{var["a"]=1; for (test in var) { print var[test] } }'

-删除数组变量
gawk 'BEGIN{var["a"]=1; delete var["a"] }'

匹配操作符

~可以值地暖匹配操作符,数据字段变量以及要匹配的正则表达式

gawk 'BEGIN{FS=","} $2 ~ /^data2/{print $0}'
echo "one" | gawk '$1 ~/one/ {print $1}'

也可以用!符号来排除匹配

gawk -F: '$1 !~ /rich/{print $1,$NF}'
echo "one" | gawk '$1 !~/one/ {print $1}'

数学表达式

在匹配模式中使用表达式

echo "one" | gawk '$1 == "one" {print $1}'

结构化命令

  • if
gawk `{if ($1 > 20) { print $1 } }`
  • while
gawk `{ i = ; while (i < 4) { i++ }}`
  • do-while
  • for

格式化打印

gawk 'BEGIN{ x=10*100; printf "%d\n",x}'

内建函数

gawk编程语言提供了不少内置函数,可以进行一些常见的数学,字符串以及时间操作。

gawk 'BEGIN{x=exp(100); print x}'

自定义函数

在定义函数时,它必须出现在所有代码块之前。

gawk 'function myprint() { printf "%d" $1} BEGIN{FS="\n"}{ myprint()}'

创建函数库

可以将多个函数放在一个库文件中,用-f命令来使用

gawk -f funclib -f script data.txt

相关文章

  • 再探gawk

    使用变量 内建变量内建变量FS和OFS分别是输入字段分隔符和输出字段分隔符。 FIELDWIDTHS变量允许不靠字...

  • gawk

    gawk基本使用 gawk options program file gawk -F '{commond1;com...

  • gawk快速指南

    gawk是awk的GNU版本,采用编程语言的形式 gawk命令格式 gawk options program fi...

  • Linux中的部分awk命令 2019-11-18

    awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU...

  • 21. Linux awk 命令

    AWK 官方手册:http://www.gnu.org/software/gawk/manual/gawk.htm...

  • gawk Ⅰ

    awk vs gawk 除了VI这种交互式的文本编辑器(interactive text editor),Linu...

  • gawk 相关总结

    一. gawk 基础 gawk 程序脚本用一对花括号来定义,必须将命令放到两个花括号中。由于 gawk 命令行假定...

  • 硬盘容量邮件报警功能

    1. 安装gawk:sudo apt install gawk; 2. 安装mail:sudo apt-get i...

  • awk

    awk介绍 有多种版本:New awk(nawk),GNU awk(gawk) gawk:模式扫描和处理语言 基本...

  • linux shell编程中有的命令组合

    1、字符串转换大小写 gawk '{print toupper($0)}' //转换为大写 gawk '{prin...

网友评论

      本文标题:再探gawk

      本文链接:https://www.haomeiwen.com/subject/rlloiqtx.html