awk精编

来源:互联网 发布:软件怎么开发的 编辑:程序博客网 时间:2024/06/05 18:05

awk:

    grep,sed,awk
    grep:文本过滤
    sed:文本编辑
    awk:文本格式化工具;

一、什么是awk、nawk、gawk

awk是一种用于处理数据和生成报告的UNIX编程语言。当然也用来处理文本文件,相较于sed,个人认为awk命令的可读性更强,sed命令功能的确强大,但不太熟悉的人,看起来有些懵逼。比如n 和 -n不是同一个东西,同样也存在格式不太统一的问题,大部分东西都是字母简写,命令和选项混在一起,看起来着实费劲。
下面来介绍一下awk:

1、名字由来
awk是3个姓氏的首字母,代表创建该语言的3位作者:Alfred V.Aho、Brian W.Kernighan、Peter J.Weinberger。当然也可以叫它wak或kaw,但常用的时awk。

2、出现的时间
为啥要着重说一下出现时间呢?因为这东西的确是个IT老工具了,70年代的东东,现在还没有淘汰,可见实用性一斑呀。
最初编写于1977年,1985年得以改进以支持更大的程序,还增加了可用户自定义函数、动态正则表达式、同时处理多个输入文件等功能。

3、常见版本
awk的版本有很多,包括old awk、new awk、GNU awk(gawk)、POSIX awk等
nawk是awk的新版本(new-awk),gawk是基于Linux的GNU版本。不过在系统中统统都直接使用awk即可,因为即使是gawk,也是awk的链接。
# ll /usr/bin/awk
lrwxrwxrwx. 1 root root 4 Feb  7 22:12 /usr/bin/awk -> gawk
    
        

二、awk的格式:

    基本语法:awk [options] ‘program’ filename …
        program: pattern{action statements}
    
    awk [options] 'pattern {action}’ filename
        选项        模式        操作
    
    options 
awk的选项,算是我用过命令里面,功能强大,但option最少的命令了。常见而且常用的就下面两个,其他的可以暂且忽略了
0 0