shell编程总结15(gawk高级)
shell编程总结15(gawk高级)
心中的理想乡 发表于10个月前
shell编程总结15(gawk高级)
  • 发表于 10个月前
  • 阅读 3
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

最后一章节来总结高级的gawk的用法。认真的看了一遍,发现gawk这东西其实就是一门语言,无误!使用方法非常的得心应手

1、内建的变量:(挑选几个有用的)
FIELDWIDTHS    每个数据字段的确切宽度
FS     输入字段分隔符
RS    输入数据行的分隔符
OFS    输出字段分隔符
ORS    输出行的数据分隔符
ARGC    当前命令行参数个数
ARGIND    当前文件在ARGV中的位置
ARGV     包含命令行参数的数组
ENVIRON    当前shell环境变量及其值组成的关联数组
FILENAME    当前数据文件中的数据行数
FNR    当前数据文件中的数据行数
NF    数据文件中的字段总数
NR    已处理的输入数据行数目

2、自定义数组:gawk中的数组使用类似于Java中的map的形式,叫做关联数组
    举例:var[index] = element
    说明:其中index可以是字符串
    遍历数组:
        for(i in var)
        {
            print "Index:",i,"value:",var[i]
        }
3、使用模式:
    正则:gawk 'BEGIN{FS=","} /11/{print $1}' data(匹配数据字段中含有字符串11的数据行)
    操作符:gawk 'BEGIN{FS=","} $2 ~ /^data2/{print $0}' data1(表示第二个数据字段是以data2开头的数据行)
    表达式:gawk -F: '$4 == 0{print $1}' /etc/passwd(表示第4个字段等于零的数据行,输出第1个字段)
4、结构化指令:if、while和for这些个语法和c的无差异,这里不多解释
5、格式化打印:这个也是和c无差异(还好是计算机科班出身)
6、内置函数:这个比较有用,可以直接对字符串进行操作
基本的数学类函数:
cos(x)    余弦
exp(x)    指数函数
int(x)    x的整数部分
log(x)    x的自然对数
rand()    0到1之间的随机数,不包含0和1
sin(x)    正弦
sqrt(x)    x的平方根
srand(x)    为计算随机数指定一个种子值
and(v1,v2)    v1和v2按位与
compl(val)    执行val的补运算
lshift(val,count)    将val左移count
or(v1,v2)    执行v1和v2的按位或运算
rshift(val,count)    将val右移count
xor(v1,v2)    执行v1和v2安慰异或运算

还有很牛逼的字符串类函数:(如下图)

时间类函数:(如下图)

7、自定义函数
    模板:
        function name(variables)
        {
            statements
        }
 

共有 人打赏支持
粉丝 0
博文 60
码字总数 46203
×
心中的理想乡
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: