linux下Awk简单过滤示例

简介
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。

awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

 使用方法
awk '{pattern + action}' {filenames}

I. 示例:

简单的记录了awk条件过滤和赋值变量来进行判断的过滤实例

[root@LinuxEA awk]# cat test1

3       aa bb
4       ss gg
1       ssyyu
6       ddf
8       ff hh
7       aa bb
9       fff

[root@LinuxEA awk]#

如上所示,现在需要拿出以aa bb的行,也就是3和7(test1的中间空白为tab)

II. 1,直接过滤

转载时须注明出处及本声明

直接过滤aa bb而后打印

[root@LinuxEA awk]# awk '/aa bb/ {print $1}' test1
3
7
III. 2,赋值判断

[root@LinuxEA awk]# var1="aa bb"

[root@LinuxEA awk]# awk -F\\t -v val="$var1" '{if($2==val)print $1}' test1
3
7
首先赋值var1变量,而后将var1赋给val,在判断$2是否等于val(也就是var1),如果等于就打印出结果

这里的$var1是需要双引号引起来的

时间: 2024-09-19 20:41:44

linux下Awk简单过滤示例的相关文章

Linux下一个简单的日志系统的设计及其C代码实现

1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息,包括:变量名称及其值.消息结构定义.函数返回值及其执行情况.脚本执行及调用情况等.通过阅读日志文件,我们能够较快地跟踪程序流程,并发现程序问题.因此,熟练掌握日志系统的编写方法并快速地阅读日志文件,是对一个软件开发工程师的基本要求. 本文详细地介绍了Linux下一个简单的日志系统的设计方法,并给出了其C代码实现.本文为相关开发项目Linux下软

Linux下一个简单的多线程互斥锁的例子

本篇文章是对Linux下一个简单的多线程互斥锁的例子进行了分析介绍,需要的朋友可以参考下   复制代码 代码如下: #include <stdio.h> #include <pthread.h> pthread_mutex_t Device_mutex ; int count=0; void thread_func1() {    while(1)    {        pthread_mutex_lock(&Device_mutex);        printf(&q

《Linux指令从入门到精通》——4.2 Linux下的简单文字模式文本编辑器

4.2 Linux下的简单文字模式文本编辑器 Linux下的文本编辑器种类很多,功能的复杂程度和操作的难易度也不尽相同.在此我们将其大致分为可视和不可视两种.在本节中讲解的ed,jed,joe,pico和sed都属于不可视编辑器,不能进行全屏方式下的操作,操作相对简单.但可视编辑器的交互功能更好,典型的可视编辑器有vi和emacs,这将在下一节中讲述. 4.2.1 ed指令:简单的行文本编辑器 理解行编辑的概念,掌握ed指令进行简单的行文本编辑的方法 ed [参数] [文件名] ed指令是Lin

轻松实现Linux下的互联网过滤功能_unix linux

目前,很多学校都建起了校园网并连接上互联网,但互联网上的不良信息非常多,如何进行网站过滤,防止不健康网站对学生的影响呢?以下本着零成本.高效益的原则,谈谈在免费的Linux下如何实现互联网的过滤功能. 设置代理服务器 校园网通过Linux上网,在网关上利用Squid架设代理服务器. 首先要安装好Linux,我用的是易装好用的RedHat Linux 7.2.在安装RedHat Linux 7.2时,Squid已同时安装好,我们只需简单的配置一下就能使用. RedHat Linux 7.2安装后默

linux下awk命令语法及使用实例教程

linux awk命令使用实例,awk是一种文本处理工具,在linux shell下尤为突出, 一个awk脚本通常由:BEGIN语句块.能够使用模式匹配的通用语句块.END语句块3部分组成,这三个部分是可选的.实例: awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file BEGIN语句块在awk开始从输入流中读取行之前被执行,这是一个可选的语句块,比如变量初始化.打印输出表格

SBackup: 一个Linux下的简单备份软件

SBackup 是一个简单易用的开源备份软件.它可以备份任意文件或者文件夹的一部分.所有的配置文件可以通过 Gnome 界面进行访问.文件和路径可以直接通过正则表达式进行添加和排除.它支持本地备份和远程备份.虽然它看起来简单,但是它有着许多常见的高级备份功能. 特点 SBackup 可以完成以下工作 可以创建压缩和未压缩的备份 可以把未压缩的备份分割成多份文件 支持多份备份配置.每个人都可以根据自己的需求创建并修改自己的配置文件,但是不能删除默认配置文件 有多种选项,如日志.邮件通知.以状态图标

Linux下awk内置变量使用介绍

我们将逐渐揭开 awk 功能的神秘面纱,在本节中,我们将介绍 awk 内置built-in变量的概念.你可以在 awk 中使用两种类型的变量,它们是:用户自定义user-defined变量和内置变量. 我们将逐渐揭开 awk 功能的神秘面纱,在本节中,我们将介绍 awk 内置built-in变量的概念.你可以在 awk 中使用两种类型的变量,它们是:用户自定义user-defined变量和内置变量.awk 内置变量已经有预先定义的值了,但我们也可以谨慎地修改这些值. awk 内置变量包括: FI

Linux下AWK使用练习

环境 RedHat Linux 9 + VWWare 8.0 + SSH 3.2.9 任务 下面的文本中包含名字.电话和为党派运动捐款的数额. 名字:电话:1月捐 款情况:2月捐款情况:3月捐款情况 Mike Harrington :(510) 548- 1278:250:100:175 Christian Dobbins:(408) 538-2358:155:90:201 Susan Dalsass:(206) 654-6279:250:60:50 Archie McNichol:(206)

linux下awk 按模式筛选文本或字符串

作为 awk 命令系列的第三部分,这次我们将看一看如何基于用户定义的特定模式来筛选文本或字符串. 在筛选文本时,有时你可能想根据某个给定的条件或使用一个可被匹配的特定模式,去标记某个文件或数行字符串中的某几行.使用 awk 来完成这个任务是非常容易的,这也正是 awk 中可能对你有所帮助的几个功能之一. 让我们看一看下面这个例子,比方说你有一个写有你想要购买的食物的购物清单,其名称为 food_prices.list,它所含有的食物名称及相应的价格如下所示: $ cat food_prices.