LINUX学习—AWK(LINUX三剑客)

LINUX学习—awk(LINUX三剑客)awk是一个报告生成器,拥有强大的文本格式化能力; 也是一种文本处理工具,但其主要功能是从处理文件中按照输入的信息格式后显示的工具 awk是一种编程语言,支持条件判断、数组、循环等功能。用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进...
摘要由CSDN通过智能技术生成

awk是一个报告生成器,拥有强大的文本格式化能力;
也是一种文本处理工具,但其主要功能是从处理文件中按照输入的信息格式后显示的工具
awk是一种编程语言,支持条件判断、数组、循环等功能。用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势。
LINUX三剑客特长
grep更适合单纯的查找或匹配文本 grep ‘pattern’ input-file…
sed更适合编辑匹配到的文本 sed [option] ‘AddressCommand’ file…
awk更适合格式化文本,对文本进行较复杂格式处理 awk [option] ‘pattern {action}’ file

awk基本语法

awk [options] ‘script’ file1 file2
awk [options] ‘pattern { action} pattern {action}…’ file

一、OPTION (常用选项)
-F:分隔符  
-v var=value:赋值一个用户自定义变量,将外部变量传递给awk   
二、PATTERN(模式)

awk [option] ‘Pattern {Action}’ file1 file2
除了BEGIN 和END模式(不需要去读取文件的内容)外, awk中还有其他pattern,如:

    1. 空模式,就是平时不添加任何模式参数的情况,即会匹配文本中的每一行,对于满足条件的行执行相应的动作;如 awk '{print $0}' test  
    2. 关系运算模式; 如 awk 'NF==5 {print $0}' test  
        关系运算符有:  
            <:小于  
            <=:小于等于  
            ==:等于  
            !=:不等于  
            >=:大于等于  
            >:大于  
            ~:与对应的正则匹配则为真  
            !~: 与对应的正则不匹配则为真  
    3. 正则模式:  
        正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本  
        awk '/正则表达式/{print $0}' /etc/passwd  
        当正则表达式中已经存在/ 号时,需要使用转义符对其进行转义;  
            如awk'/\/bin\/bash$/{print $0}' /etc/passwd  
            除此之外,awk在使用正则模式时,使用到的正则用法属于“扩展正则表达式”  
            当使用{
  x, y}这种次数匹配的正则表达式时,需要配合--posix或--re-interval选项,否则会报错;  
    4. 行范围模式:pat1,pat2  
        注意相邻的正则表达式用逗号隔开,且都是以第一次匹配到的行为为准;  
        awk '/正则1/,/正则2/{动作}’ /some/file   
        这种方法还可以用多个关系表达式来达到效果:但相互之间用&&连接 如: awk 'NR>=3 && NR<=6 {
  print $0}' file  
三、ACTION

1、print
print的使用格式:
print item1, item2,…
要点:
1、各项目之间使用逗号隔开,而输出时则以空白字符分隔
2、输出的item可以为字符串或数值、当前记录的字段(如 1)awk3print

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值