awk用法一

gawk程序是Unix中的原始awk程序的GNU版本,它提供了一种编程语言而不只是编辑器命令。在CentOS中awk命令实际上是gawk程序的链接文件名。

基本语法:

awk [options] ‘program’ flie1 file2 ...

awk [options] ‘PATTERN{action}’ flie1 file2...

1、awk的输出

print item1,item2...

要点:

(1)各项目之间使用逗号分隔,而输出时则使用输出分隔符分隔;

(2)输出的各item可以是字符串数值、当前记录的字段、变量或awk的表达式;数值会被隐式转换为字符串后输出;

(3)print后面item如果省略,相当于print $0,即输出整个文本行;输出空白,使用print “”;

选项:

-F 分隔符:指定输入分隔符;

例如:

2、awk的变量

awk可以使用的变量有内置变量和自定义变量两种。

2.1 内置变量

FS:输入时指定字段分隔符,与-F选项作用类似;

RS:输入时指定行的分隔符(换行符);

OFS:输出时指定字段分隔符;

ORS:输出时指定行分隔符;

上例中使用“---”做为行分隔符,每行的结束都被替换为“---”。

NF:每行中的字段个数;

NR:行数,所有文件一并计数;

上例中虽然有两个文件但其行数是合并计算的。

FNR:各文件分别记录行数;

ARGV:数组,用于保存命令本身和命令行参数;

数组下标从0开始计算,ARGV[0]保存awk命令本身,ARGV[1]保存表达式后面的条一个参数。

ARGC:保存awk命令中参数的个数;

FILENAME:awk所正在处理的当前文件的名称。

2.2 自定义变量

(1) 可以在脚本中定义变量;

(2) 可以在命令行中定义变量。

注:变量名区分大小写

格式如下所示:

时间: 2024-09-28 17:21:08

awk用法一的相关文章

不看绝对后悔的Linux三剑客之awk实战精讲

一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告(excel).处理的数据可以是一个或多个文件,可以是来自标准输入,也可以通过管道获取标准输入,awk可以在命令行上直接编辑命令进行操作,也可以编写成awk程序来进行更为复杂的运用.本章主要讲解awk命令的运用 1.2 awk环境简介 [[email protected] ~]# cat /etc/redhat-release 

linux基础学习-18-linux三剑客之awk命令精讲

快捷跳转目录: * 第1章:awk基础入门       * 1.1:awk简介 * 1.2:学完awk你可以掌握: * 1.3:awk环境简介 * 1.4:awk的格式 * 1.5:模式动作 * 1.6:awk的执行过程 * 1.6.1:小结awk执行过程 * 1.7:记录和字段 * 1.7.1:记录(行) * 1.7.2:记录分隔符-RS * 1.7.3:对$0的认识 * 1.7.4:企业面试题 * 1.7.5:awk记录知识小结 * 1.7.6:字段(列) * 1.7.7:ORS与OFS简介

Shell脚本练习

#!/bin/bashecho "当前日期时间为:"`date`echo "Hello World !" #使用变量:可以用单引号,也可以用双引号your_name="Wang"echo $your_nameecho ${your_name}str='ShellStudy'echo ${str}#只读变量:不能改变它的值myUrl="www.wnn1.com"readonly myUrlecho "My URL is

awk编程之数组、控制流(长期更新)

数组篇: 数组格式    array[index]=value     统计nginx的access.log日志中访问最多的10个IP 101.121.182.144 - - [24/Jan/2017:11:25:59 +0800] "POST /home/activity/new-cow-interface!returnNewCowMsg.action HTTP/1.1" 200 2 -uin=50863819- "-" "Java/1.6.0_33&q

awk入门及awk数组相关实战

知识点: l 记录与字段 l 模式匹配:模式与动作 l 基本的awk执行过程 l awk常用内置变量(预定义变量) l awk数组(工作常用) l awk语法:循环.条件 l awk常用函数 l 向awk传递参数 l awk引用shell变量 l awk小程序及调试思路 [[email protected] ~]# awk --version|head -1 GNU Awk 3.1.7 第1章 记录和字段 record记录==行, field字段相当于列,字段==列. awk对每个要处理的输入数

awk,rsync,重启

有100个日志文件,每个文件大约1G,每条日志都以 “H:i:s” 的时间格式开头,如: 05:02:04 xxx yyy zzz 因为是日志文件,所以肯定以时间为顺序的,现在可以确定的是,在某个文件中存在一条 01:02:03 这个时间点的关于xxx的日志,要找出来 ,如何做? for f in *; do awk '/^01:02:03/{} /^01:1/{exit}' $f |grep xxx; done 这样的话,没个文件只扫描很少的一部分就可以了 查询Linux系统最后重启时间的三个

awk中文手册

1. 前言 有关本手册 : 这是一本awk学习指引, 其重点着重于 : l        awk 适于解决哪些问题 ? l        awk 常见的解题模式为何 ? 为使读者快速掌握awk解题的模式及特性, 本手册系由一些较具代表性的范例及其题解所构成; 各范例由浅入深, 彼此间相互连贯,范例中并对所使用的awk语法及指令辅以必要的说明. 有关awk的指令, 函数,...等条列式的说明则收录于附录中, 以利读者往后撰写程序时查阅. 如此编排, 可让读者在短时间内顺畅地学会使用awk来解决问题

awk解密

GNU awk awk是什么? 报告生成器,格式化文本输出:如果仅是过滤文本用grep,但过滤后格式化显示可用awk.  基本用法:gawk [options] 'program' FILE ... program: PATTERN{ACTION STATEMENTS} 注:PATTERN  模式,也可以地址定界  ACTION STATEMENTS} 动作语句,可以多个 语句之间用分号分隔  选项: -F:指明输入时用到的字段分隔符: -v var=value: 自定义变量: 'program

【译】 AWK教程指南 7AWK应用实例

本节将示范一个统计上班到达时间及迟到次数的程序. 这程序每日被执行时将读入两个数据文件: * 员工当日到班时间的数据文件 ( 如下列的 arr.dat ) * 存放员工当月迟到累计次数的文件 当程序执行执完毕后将更新第二个数据文件的数据(迟到次数),并打印当日的报表.这程序将分成下列数小节逐步完成,其大纲如下: 7.1 在到班资料文件 arr.dat 之前增加一行抬头"ID Number Arrvial Time",并产生报表输出到文件today_rpt1 中. <在awk中如何