码迷,mamicode.com
首页 > 其他好文 > 详细

AWK常见使用技巧

时间:2019-07-03 09:12:54      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:生成   ons   print   %s   技巧   特定   情况   结束   文本   

awk简单使用技巧

awk:报告生成器,格式化文本输出工具
语法格式:
awk [options] ‘script‘ file1,file2,...
awk [options] ‘PATTERN {action}‘ file1,file2,...
处理机制:
一次从文件中读取出来一行,按照特定分割符对其进行切片(默认空格)

程序结构:

  • 开始块(BEGIN BLOCK)
    BEGIN
    开始块就是awk程序启动时执行的代码部分(在处理输入流之前执行),并且在整个过程中只执行一次,一般情况下,我们在开始快中初始化一些变量
  • 主体块(BODY BLOCK)
    针对每一行输入的行都会执行一次主体部分的命令
  • 结束块(END BLOCK)
    END
    结束块是awk代码程序结束时执行的代码(在处理完输入流之后执行)
    例子:
    awk -F: ‘BEGIN{print "======start======"}{print $1,$NF}END{print "======end======"}‘ /etc/passwd

    awk -F: ‘{printf "username:%s bash:%s\n",$1,$NF}‘ /etc/passwd
    awk -F: ‘{printf "username:%-20s bash:%s\n",$1,$NF}‘ /etc/passwd
    
    awk -F: ‘{sum+=$3}END{print sum}‘ /etc/passwd
    
    awk ‘BEGIN{a=5;b=6;if(a == b) print "a == b";else print "a!=b"}‘

    模式匹配:
    模式匹配符:
    ~
    !~

        例子:
            awk -F: ‘$1~"root"{print $0}‘ /etc/passwd
    
            awk ‘/^$|^#/{print}‘ /etc/fstab
            awk ‘!/^$|^#/{print}‘ /etc/fstab
    
            awk -F: ‘$(NF-1)=="/var/ftp"{print $0}‘ /etc/passwd
    逻辑运算:
            awk ‘BEGIN{A=6;if(a >0 && a<=6)print "true";else print "false"}‘
            awk ‘BEGIN{A=6;if(a <0 || a<=6)print "true";else print "false"}‘

AWK常见使用技巧

标签:生成   ons   print   %s   技巧   特定   情况   结束   文本   

原文地址:https://blog.51cto.com/13777088/2416371

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!