zoukankan      html  css  js  c++  java
  • linux awk基本语法命令总结

    一、基本用法

    文本内容准备

    2 this is a test
    3 Are you like awk
    This's a test
    10 There are orange,apple,mongo

    用法一:行匹配语句awk ‘'只能使用单引号

    实例:每行按空格或TAB分割,输出文本中的1、4项

    [root@master mnt]# cat log.txt |awk '{print $1,$4}'
    2 a
    3 like
    This's 
    10 orange,apple,mongo
    格式化输出

    [root@master mnt]# cat log.txt |awk '{printf "%-8s %-10s ",$1,$4}'
    2 a
    3 like
    This's
    10 orange,apple,mongo

    用法二:-F,指定分隔符

    [root@master mnt]# cat log.txt |awk -F ',' '{print $1,$2}'
    2 this is a test 
    3 Are you like awk 
    This's a test 
    10 There are orange apple

    或者使用内建表量

    [root@master mnt]# cat log.txt |awk 'BEGIN{FS=","} {print $1,$2}'
    2 this is a test
    3 Are you like awk
    This's a test
    10 There are orange apple

    #使用多个分隔符,先使用空格分割,然后对分割结果再使用“,”分割

    [root@master mnt]# cat log.txt |awk -F '[ ,]' '{print $1,$2,$5}'
    2 this test
    3 Are awk
    This's a
    10 There apple

    用法三:awk -v #设置变量

    [root@master mnt]# cat log.txt |awk -va=1 -vb=s -vc=w '{print $1,$1+a,$1b,$1c}'
    2 3 2s 2w
    3 4 3s 3w
    This's 1 This'ss This'sw
    10 11 10s 10w

    [root@master mnt]# cat log.txt |awk -va=1 '{print $1,$1+a}'
    2 3
    3 4
    This's 1
    10 11

    用法四:awk -f {awk脚本} {文件名}

    过滤第一列大于2的行
    [root@master mnt]# cat log.txt |awk '$1>2' 3 Are you like awk This's a test 10 There are orange,apple,mongo
    过滤第一列等于2的行

    [root@master mnt]# cat log.txt |awk '$1==2 {print $1,$2}'
    2 this

    过滤第一列大于2并且第二列等于'Are'的行

    [root@master mnt]# cat log.txt |awk '$1>2 && $2=="Are" {print $1,$2}'
    3 Are

    用法五:指定输出分割符

    [root@master mnt]# cat log.txt |awk '{print $1,$2,$5}' OFS=";" 
    2;this;test
    3;Are;awk
    This's;a;
    10;There;

    用法六:正则字符串匹配

    输出第二列包含“th” ,并打印第二列与第四列
    [root@master mnt]# cat log.txt  |awk '$2 ~ /th/ {print $2,$4}'
    this a

    ~表示模式匹配。//中是匹配的字符串

    用法七:忽略大小写

    [root@master mnt]# cat log.txt |awk 'BEGIN{IGNORECASE=1} /THIS/ '
    2 this is a test
    This's a test

    用法八:模式取反

    输出第二列不包含"th"的行的第二列和第四列
    [root@master mnt]# cat log.txt |awk '$2 !~ /th/ {print $2,$4}'
    Are like
    a 
    There orange,apple,mongo
    等同于

    [root@master mnt]# cat log.txt |awk '!/th/ {print $2,$4}'
    Are like
    a
    There orange,apple,mongo

  • 相关阅读:
    Swift入门篇-Hello World
    Swift入门篇-swift简介
    Minecraft 插件 world edit 的cs 命令
    搭建本地MAVEN NEXUS 服务
    MC java 远程调试 plugin 开发
    企业内部从零开始安装docker hadoop 提纲
    javascript 命令方式 测试例子
    ca des key crt scr
    JSF 抽象和实现例子 (函数和属性)
    form 上传 html 代码
  • 原文地址:https://www.cnblogs.com/yfb918/p/10677913.html
Copyright © 2011-2022 走看看