Linux awk 命令

2016-12-02 16:59:46 4483

简介

AWK:三位创造者Aho、Weinberger和Kernighan统称

官方定义:一个优秀的样式扫描与处理工具

定位:AWK是一种用于处理文本的编程语言工具,主要用于格式化报文或从一个大的文本文件中抽取数据提取原来文本中行的某些域进行计算组合显示出结果

 

【扫描文件中的每一行,查找与命令行中所给定内容相匹配的模式。如果发现匹配内容,则进行下一个编程步骤。如果找不到匹配内容,则继续处理下一行,直到文件末尾

 

[Shell过滤工具中最难掌握的,语法复杂,错误提示不明确]

 

优点:

1.处理文件中的?录

2.简单,解释执行,不必编译(与C相比)

3.容易获得,unix自带(whereis awk)

模式和动作

模式部分决定了动作语句何时触发及触发的事件【处理语句】

模式部分可省略,则动作对每一行执行;模式部分可以是任何条件语句、复合语句、正则表达式



命令格式及说明

格式:

语法组成:【查找  -à 执行处理】

awk ‘pattern{action}’ filename

【注意,pattern在非括号中,用于查询筛选匹配行,action在括号中,action是在找到匹配内容时所执行的一系列命令,用于对筛选后的内容进行处理】

 

其中action内容可扩充,也可以有多个action。
执行顺序:awk一行行读入输入文件,顺序执行‘’内内容,按模式匹配来采取动作。
其他调用:awk可用内部变量和函数,条件与循环?句,也可执行数学运算和字符串操作。此外,可以使用BEGIN和END来执行处理前预操作和处理后后继操作。

格式:

awk [ -F re] [parameter...] ['prog'] [-f progfile]

 

参数说明:

-F re

允许awk更改其字段分隔符,默认空格

A.-F参数后紧跟单个分隔符,则用双引号“”,例如 –F”+”
B.-F参数后紧跟多个分隔符,则用单引号‘ ’并用[ ],中间顺序无所谓,例如-F’[+$]’

parameter

该参数帮助为不同的变量赋值

'prog'

awk的程序语句段。这个语句段必须用单拓号:'和'括起,以防被shell解释

-f progfile

允许awk调用并执行progfile指定有程序文件

progfile是一个文本文件,他必须符合awk的语法

in_file

awk的输入文件,awk允许对多个输入文件进行处理。

值得注意的是awk不修改输入文件。

如果未指定输入文件,awk将接受标准输入,并将结果显示在标准输出上。

awk支持输入输出重定向。

BEGIN{….}

{…..}

END{……}

位置:’{}’

作用:BEGIN和END的作用是给程序赋予初始状态和在程序结束之后执行一些扫尾的工作

  BEGIN{}:awk开始扫描输入之前执行 (显示变量和预置(初始化)变量)

  END{}:在扫描完全部的输入之后执行 (最终结果 )

  {}:操作

 

BEGIN部分:设置计数和?印头

END部分:打印输出文本总数及结尾状态标识


调用方法

调用方式:

1

命令行;普通UNIX命令 ,用于解决简单的问题

 

2

利用命令解释器调用awk程序;

写入脚本文件,并在首行加入#!/bin/awk –f ,执行之

 

 

3

使用-f选项调用awk程序

所有awk插入一个单独文件然后调用

awk –f awk-script-file input-files



提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: