一、基本用法

文本内容准备

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\n",$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

linux awk基本语法命令总结的更多相关文章

  1. Linux:awk与cut命令的区别

    结论:awk 以空格为分割域时,是以单个或多个连续的空格为分隔符的;cut则是以单个空格作为分隔符.

  2. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  3. Linux awk命令详解??????????(研究)

    http://blog.chinaunix.net/uid-25120309-id-3801250.html 一.  AWK 说明  awk是一种编程语言,用于在linux/unix下对文本和数据进行 ...

  4. Linux下的awk文本分析命令详解

    一.简介 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linux/ ...

  5. Linux awk命令使用方法

    awk是linux上非常好用的文本处理工具,常用于指定列的处理,包括获取指定列的内容.根据指定列匹配关系输出等文本处理.本文主要描述awk命令的基本语法.正则表达式与操作符的使用.常用内置变量的含义和 ...

  6. [转]Linux awk 命令 说明

    From : http://blog.csdn.net/tianlesoftware/article/details/6278273 一.  AWK 说明 awk是一种编程语言,用于在linux/un ...

  7. Linux下grep、tail、wc、awk文件处理命令

    grep Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并匹配行打印出来. 命令语法: usage: grep [-abcDEFGHhIiJLlmnOoqRSsUV ...

  8. 转:Linux awk 命令 说明

    一.  AWK 说明 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是 ...

  9. Linux awk 命令 说明

    一. AWK 说明 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是l ...

随机推荐

  1. PyQt(Python+Qt)学习随笔:QListView的gridSize属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListView的gridSize属性用于控制视图中数据项排列所在网格的大小,gridSize默认 ...

  2. RedHat操作指令第4篇

    top(查看动态进程运行情况) top 是一个更加有用的命令,可以监视系统中不同的进程所使用的资源.它提供实时的系统状态信息. 显示进程的数据包括 PID.进程属主.优先级.%CPU.%memory等 ...

  3. tensorflow 指定版本安装

    首先,建议在anaconda中创建虚拟环境,教程已写,参考上一篇 下载之前建议设置pip清华源(用以提速,可百度) 设置下载源 pip config set global.index-url http ...

  4. NET CORE通过NodeService调用js

    在 .NET Framework 时,我们可以通过V8.NET等组件来运行 JavaScript,不过目前我看了好几个开源组件包括V8.NET都还不支持 .NET Core ,我们如何在 .NET C ...

  5. java视频格式转换

    项目中需要对各种视频格式转码为mp4格式,试了好多办法,最后使用ffmpeg 工具完美转码,ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等) 链接 ...

  6. Panda 交易所热点关注:股权交易中心+区块链试点将开始

    近期,Panda 交易所注意到,中国证监会已同意北京.上海等5家区域性股权市场参与区块链建设试点工作.Panda 交易所获悉的具体情况是,北京股权交易中心曾联合其他单位共同推出区域性股权市场中介机构征 ...

  7. AcWing 127. 任务

    题目链接 参考y神的思路QWQ 算法:贪心 对于每一个任务: \(y\) 的差异最多能使利润\(w\)浮动\(2 * 100 = 200\)元. \(x\) 差\(1\),则会使利润\(w\)浮动\( ...

  8. Map、Debug追踪

    Map集合   概述   现实生活中,我们常会看到这样一种集合:IP地址和主机名,身份证号和个人,系统用户名与系统用户对象等,这种一一对应的关系,我们把它称之为映射.Java当中提供了专门的集合类用来 ...

  9. JavaSE02-基本语法

    1.注释 注释是对代码的解释和说明文字,可以提高程序的可读性,因此在程序中添加必要的注释文字十分重要. Java中的注释分为三种: 单行注释.单行注释的格式是使用//,从//开始至本行结尾的文字将作为 ...

  10. HBase按照TimeStamp删除数据

    #!/bin/bash #两种时间输入,一种是输入起始日期,另一种是直接输入hbase里面数据的起始时间戳 if [ $# != 5 ];then echo 'usage:sh byTimestamp ...