`
LIMIMGJIE
  • 浏览: 174156 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

记录awk的内置函数

awk 
阅读更多

awk是个优秀文本处理工具,可以说是一门程序设计语言。下面是awk内置变量。



一、内置变量表



属性 说明

 

内置变量表

$0 当前记录(作为单个变量)
$1~$n 当前记录的第n个字段,字段间由FS分隔
FS 输入字段分隔符 默认是空格
NF 当前记录中的字段个数,就是有多少列
NR 已经读出的记录数,就是行号,从1开始
RS 输入的记录他隔符默 认为换行符
OFS 输出字段分隔符 默认也是空格
ORS 输出的记录分隔符,默认为换行符
ARGC 命令行参数个数
ARGV

命令行参数数组

FILENAME 当前输入文件的名字
IGNORECASE 如果为真,则进行忽略大小写的匹配
ARGIND 当前被处理文件的ARGV标志符
CONVFMT 数字转换格式 %.6g
ENVIRON UNIX环境变量
ERRNO UNIX系统错误消息
FIELDWIDTHS 输入字段宽度的空白分隔字符串
FNR 当前记录数
OFMT 数字的输出格式 %.6g
RSTART 被匹配函数匹配的字符串首
RLENGTH 被匹配函数匹配的字符串长度
SUBSEP \034

 

6、输入参数获取(ARGC ,ARGV使用)

[chengmo@localhost ~]$ awk 'BEGIN{FS=":";print "ARGC="ARGC;for(k in ARGV) {print k"="ARGV[k]; }}' /etc/passwd
ARGC=2
0=awk
1=/etc/passwd

ARGC得到所有输入参数个数,ARGV获得输入参数内容,是一个数组。

 

7、获得传入的文件名(FILENAME使用)

[chengmo@localhost ~]$ awk 'BEGIN{FS=":";print FILENAME}{print FILENAME}' /etc/passwd

/etc/passwd

FILENAME,$0-$N,NF 不能使用在BEGIN中,BEGIN中不能获得任何与文件记录操作的变量。

 

8、获得linux环境变量(ENVIRON使用)

[chengmo@localhost ~]$ awk 'BEGIN{print ENVIRON["PATH"];}' /etc/passwd   
/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/lib/ccache:/usr/lib/icecc/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/java/jdk1.5.0_17/bin:/usr/java/jdk1.5.0_17/jre/bin:/usr/local/mysql/bin:/home/web97/bin

ENVIRON是子典型数组,可以通过对应键值获得它的值。

 

9、输出数据格式设置:(OFMT使用)

[chengmo@localhost ~]$ awk 'BEGIN{OFMT="%.3f";print 2/3,123.11111111;}' /etc/passwd  
0.667 123.111

OFMT默认输出格式是:%.6g 保留六位小数,这里修改OFMT会修改默认数据输出格式。

 

10、按宽度指定分隔符(FIELDWIDTHS使用)

[chengmo@localhost ~]$ echo 20100117054932 | awk 'BEGIN{FIELDWIDTHS="4 2 2 2 2 3"}{print $1"-"$2"-"$3,$4":"$5":"$6}'
2010-01-17 05:49:32

FIELDWIDTHS其格式为空格分隔的一串数字,用以对记录进行域的分隔,FIELDWIDTHS="4 2 2 2 2 2"就表示$1宽度是4,$2是2,$3是2  .... 。这个时候会忽略:FS分隔符。

 

11、RSTART RLENGTH使用

[chengmo@localhost ~]$ awk 'BEGIN{start=match("this is a test",/[a-z]+$/); print start, RSTART, RLENGTH }'
11 11 4
[chengmo@localhost ~]$ awk 'BEGIN{start=match("this is a test",/^[a-z]+$/); print start, RSTART, RLENGTH }'
0 0 –1

RSTART 被匹配正则表达式首位置,RLENGTH 匹配字符长度,没有找到为-1.

 

 

 

#! /usr/bin/awk -f





# player aop analyse script


# author:limingjie


# date:2011/12/07





     {


BEGIN{FSsplit("1 11 201 25 200",aopIdArr," ");


        split("10000 11000",srcIdArr," ");


}





{


        for(srcId in srcIdArr){


                if(srcIdArr[srcId]==$8){


                        for(aopId in aopIdArr){


                                if(aopIdArr[aopId]==$4){


        #                               print "##################################"


                                        result[srcId"_"aopId]+=1 ;


                                }


                        }


                }


        }


}


END{


        for(srcId in srcIdArr){


                for(aopId in aopIdArr){


                        print FILENAME":"srcIdArr[srcId]"_"aopIdArr[aopId]"="result[srcId"_"aopId];


                }


        }





}


 

 

参考链接:http://blah.blogsome.com/category/awk/#g_t_00bc_00c6_00cb_00e3_00d7_00dc_00ba_00cd_00b5_00c4_00bd_00c5_00b1_00be

 

 

分享到:
评论

相关推荐

    linux-shell脚本命令:awk命令简介

    awk内置函数还包括对字符串进行操作的功能,例如 substr、split、sub和gsub函数,分别用于获取子字符串、分割字符串到数组、字符串替换等。 使用awk时,模式匹配是一个非常重要的功能。模式可以是字符串或者正则...

    awk教程入门到精通

    内置变量包括 NR、NF、FS、RS 等,它们分别表示记录号、字段数、字段分隔符和记录分隔符。用户定义变量可以使用赋值语句来定义。 awk 的函数 awk 有多种函数,包括数学函数、字符串函数、时间函数等。数学函数包括...

    linux awk 内置变量使用介绍.docx

    awk的内置变量是其灵活性的关键组成部分,这些变量提供了对输入和输出的控制,以及对处理过程的元信息的访问。以下是对标题和描述中提到的`awk`内置变量的详细解释: 1. **$0**:这个变量代表当前记录,即每一行的...

    AWK AWK 详细使用文档

    - **内置函数库**:AWK提供了一系列内置函数,用于处理数学运算、字符串操作等。 - **常见函数**:如`sqrt()`用于计算平方根,`toupper()`用于转换字符串为大写等。 #### 十五、内置变量 - **内置变量**:AWK定义...

    awk命令详解大全

    - **awk内置变量**:如`FS`(字段分隔符)、`OFS`(输出字段分隔符)等。 - **awk的内置函数**:如`tolower()`(转换为小写)、`toupper()`(转换为大写)等。 通过以上介绍,我们可以看出awk不仅仅是一个简单的...

    Shell AWK使用手册

    **awk的内置函数**:AWK提供了许多内置函数,如`length()`用于获取字符串长度,`split()`用于分割字符串,`print()`和`printf()`用于输出,以及数学运算函数如`sqrt()`平方根,`int()`向下取整等。 **在命令行使用...

    Sed与Awk (中文版)

    内容包括通用的程序结构、使用awk内置函数、编写用户定义函数、awk程序的调试技术等。 **awk编程的高级应用** 书中还涉及了如何开发处理索引的应用程序,以此来演示awk的强大功能。此外,还包括了如何获取不同awk...

    awk使用手册-学习AWK首选

    而内置函数如length()、substr()、split()等,进一步增强了awk的功能。 在命令行使用awk时,可以利用BEGIN和END规则进行预处理和后处理,它们在处理任何输入之前和之后执行,不依赖于输入数据。此外,awk支持多种...

    awk知识文档学习

    - **字段**: Awk通过内置变量$0、$1、$2等来引用当前记录中的字段。 ### 4. 字段和记录的处理 - **字段分隔符**: Awk使用内置变量FS(Field Separator)来确定字段的分隔符,默认为空格和制表符。 - **记录分隔符*...

    awk正则表达式和内置函数的使用方法实例详解

    awk内置函数包括字符串处理函数和数值处理函数等。例如,gsub函数用于全局替换字符串中的匹配模式。在实例中,代码`awk 'gsub(/6\./, "78") {print $0}' data.f`使用gsub函数将data.f文件中所有出现的"6."替换为"78...

    AWK学习笔记.doc

    AWK提供了一系列内置函数,例如`length()`用于计算字符串长度,`split()`用于分割字符串,`printf()`用于格式化输出等。 **一.6 命令行使用AWK** 在命令行中,可以将AWK脚本直接作为参数传递,或者使用`-f`选项指定...

    The AWK Programming Language 中文版

    AWK的语法简洁,提供了丰富的内置函数和灵活的数据处理能力,使得它成为数据处理领域中的一个利器。AWK也能够与其他程序交互,进一步拓展了其应用范围。对于任何需要处理文本数据的用户,AWK都值得学习和掌握。

    awk入门级教材awk入门awk入门

    - **内置函数**:提供了丰富的内置函数,如 `length()`, `sqrt()`, `toupper()` 等。 - **变量、表达式和赋值**:支持变量定义、数学运算等。 - **字段变量**:`NF` 代表当前记录的字段数量。 - **字符串连接**:...

    awk参考资料下载awk

    - **内置函数**: 包括算术函数(如`+`、`-`、`*`、`/`)、字符串函数(如`length`、`index`、`substr`)和控制流程函数(如`if`、`for`、`while`)等。 - **表达式**: 用于计算或判断,结果可以影响操作的执行。 ...

    awk详细用法小结awk awk

    #### 四、awk内置变量 awk提供了一系列内置变量,用于简化数据处理任务: - `$n`:当前行的第n个字段,其中字段由FS变量指定的分隔符分割。 - `$0`:当前行的完整内容。 - `ARGC`:命令行参数的个数。 - `ARGIND`...

    awk实例详解——Unix下awk的使用

    `awk`的动作可以包括打印(`print`)、重定向(`printf`)、条件判断(`if...else`)、循环(`for`、`while`)以及内置函数,如计算平均值(`awk '{sum+=$1} END{print sum/NR}'`)。 **6. 行内模式匹配** 除了匹配...

    Effective AWK Programming:Awk 编程的经典著作

    3. **动作与函数**:介绍AWK中的内置动作和函数,例如`print`、`printf`、`next`和`exit`等,以及如何自定义函数以提高代码复用性。这些函数涵盖了字符串操作、数学计算和数组处理等多个方面。 4. **输入/输出处理*...

    AWK入门教程和实战案例

    - **内建函数**:AWK提供了多种内置函数,如`length()`计算字符串长度,`split()`分割字符串等。 7. **实战案例** - **案例1**:统计输入文件中单词的数量,可以使用`gawk '{count++} END{print count}' file`。 ...

    awk教程所速度

    awk还具备大量的内置函数,这些函数可以分为数值函数、字符串函数和系统函数三类。数值函数包括了三角函数、指数、对数和平方根等。字符串函数有用于长度计算、索引查找、子字符串操作、字符串分割等,nawk和gawk...

    linux中shell脚本中awk的深入分析

    本文档将深入分析 awk 的使用和实现机制,探讨 awk 的内置变量、指令和函数,并通过实践示例加深理解。 awk 的内置变量 awk 提供了多种内置变量,用于存储和处理数据。这些变量包括: * ARGC:命令行参数个数 * ...

Global site tag (gtag.js) - Google Analytics