awk 变量

原创 2015年10月27日 15:43:16

– Start
awk 是一种弱类型的语言,它并不像 Java 等其他语言那样严格区分数字和字符串。那 awk 是如何来识别一个变量中存储的是数字还是字符串的呢?答案就是操作符。操作符需要什么类型的数据,变量就会被转换成什么类型的数据。如果对两个变量进行数学运算,那么不管这两个变量中存储的是什么,它们都将被转换为数字。如果字符串中包含的不是数字,它将会被转换成 0。此外,变量也不需要提前申明,变量名区分大小写。

数字变量

#! /usr/bin/awk -f

BEGIN {
    # 定义整数
    int1 = 10;  
    int2 = -10;  
    int3 = 10e2; # 10 乘以 10 的 2 次方,e不区分大小写  

    octal = "\377"; # 八进制以 \ 开头  
    hex = "\xFF"; # 十六进制以 \x 开头,a,b,c,d,e,f 不区分大小写

    # 定义浮点数
    float1 = 10.0;  
    float2 = 10.;  
    float3 = 0.25;  
    float4 = .25;  
    float5 = -10.0e2; # -10.0乘以 10 的 2 次方,e不区分大小写
};

{};

END {
    print int1;
    print int2;
    print int3;

    print octal;
    print hex;

    print float1;
    print float2;
    print float3;
    print float4;
    print float5;
};

字符串变量

#! /usr/bin/awk -f

BEGIN {
    # 定义字符串
    # 注意字符串不能使用单引号定义
    str1 = "Test1\tTest2";

    # 字符串长度
    printf("The length of str1: %s\n", length(str1));

    # 转成小写
    printf("The lower case of str1: %s\n", tolower(str1));

    # 转成大写
    printf("The upper case of str1: %s\n", toupper(str1));

    # 查找子串位置
    printf("The position of Test2 in str1: %s\n", index(str1, "Test2"));

    # 获取子串
    printf("The sub string of str1: %s\n", substr(str1, 7, 4));

    # 查找匹配
    if(match(str1, "[a-zA-Z]+2") != 0) {
        print "find pattern in str1";
    }

    # 替换
    printf("After substituted str1: %s\n", gensub("[a-zA-Z]+2", "***", g, str1));
};

{};
END {};

转义字符

awk 支持如下转义字符。

\a       响铃
\b       退格
\f       换页
\n       换行
\r       回车
\t       水平制表符
\v       垂直制表符
\ddd     8进制数字
\xhex    16进制数字
\\       反斜线

内置变量

awk 定义了以下内置变量,在适当的时候,我们可以引用或设置这些变量来得到我们想要的信息。

ARGC        命令行参数数量
ARGV        命令行参数数组
ARGIND      当前 ARGV 的下标
ENVIRON     环境变量关联数组(ENVIRON["HOME"])
IGNORECASE  是否忽略大小写
FILENAME    当前处理的文件名
FS          列分隔符,默认是空格
RS          行分隔符,默认是换行符
RT          行分隔符,Gawk 使用
FIELDWIDTHS 用来生成定长文件
NF          当前行的列数
NR          当前处理过的行数
FNR         当前文件的总行数
CONVFMT     默认格式化数字的格式(%.6g)
OFMT        默认数字输出格式(%.6g)
OFS         输出文件列分隔符,默认是空格
ORS         输出文件行分隔符,默认是换行符
RSTART      调用 match 函数后, RSTART 保存匹配的位置
RLENGTH     调用 match 函数后, RLENGTH 保存匹配字符串的长度
ERRNO       保存错误消息
BINMODE     二进制模式
LINT        同参数 --lint
PROCINFO    关联数组,保存当前运行脚本的有关信息,如获取进程号:PROCINFO["pid"]
SUBSEP      分离多个下标,默认(\034)
TEXTDOMAIN  用来本地转换

– 更多参见:awk 精萃
– 声 明:转载请注明出处
– Last Updated on 2015-10-28
– Written by ShangBo on 2015-10-27
– End

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

awk 函数

awk 函数

awk 简介

awk 简介

awk引用shell中变量的几种方法

一:"'$var'" 这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如: var="test" awk'BEGIN{print "'$var'"}' 这种写法...

awk 精萃

awk 文章汇总

awk引用外部变量

一、用awk 有以下几种方法去调用变量: 1.  awk '{print a, b}' a=111 b=222 yourfile 注意, 变量位置要在 file 名之前, 否则就不能调用。...

awk 内置变量

awk是个优秀文本处理工具,可以说是一门程序设计语言。下面是awk内置变量。 一、内置变量表 属性 说明 $0 当前记录(作为单个变量) ...

linux awk 内置变量使用介绍

linux awk 内置变量使用介绍 awk是个优秀文本处理工具,可以说是一门程序设计语言。下面是awk内置变量。   一、内置变量表 属性 说明 $0 当前记录(作...

awk使用shell变量,shell获取awk中的变量值

原文:http://renyongjie668.blog.163.com/blog/static/16005312011829102025222/ 我认为在linux下awk是个好东东啊,处理一...

awk 用法变量名 含义

awk获取外部变量

可以进行正则表达式的匹配 样式装入 流控制 数学运算符 进程控制语句 内置的变量和函数 可以把awk看作一门完全的程序设计语言,它处理文本的速度是快得惊人的。现在很多基于shell 日志分析工具都...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)