awk 系列:awk 怎么从标准输入(STDIN)读取输入

在 awk 系列的前几节,我们看到大多数操作都是从一个文件或多个文件读取输入,或者你想要把标准输入作为 awk 的输入。

在 awk 系列的第七节中,我们将会看到几个例子,你可以筛选其他命令的输出代替从一个文件读取输入作为 awk 的输入。

我们首先从使用 dir 命令开始,它类似于 ls 命令,在第一个例子下面,我们使用 dir -l 命令的输出作为 awk 命令的输入,这样就可以打印出文件拥有者的用户名,所属组组名以及在当前路径下他/她拥有的文件。

# dir -l | awk '{print $3, $4, $9;}'

列出当前路径下的用户文件

再来看另一个例子,我们使用 awk 表达式 ,在这里,我们想要在 awk 命令里使用一个表达式筛选出字符串来打印出属于 root 用户的文件。命令如下:

# dir -l | awk '$3=="root" {print $1,$3,$4, $9;} '

列出 root 用户的文件

上面的命令包含了 (==) 来进行比较操作,这帮助我们在当前路径下筛选出 root 用户的文件。这是通过使用 $3=="root" 表达式实现的。

让我们再看另一个例子,我们使用一个 awk 比较运算符 来匹配一个确定的字符串。

这里,我们使用了 cat 命令 来浏览文件名为 tecmint_deals.txt 的文件内容,并且我们想要仅仅查看有字符串 Tech 的部分,所以我们会运行下列命令:

# cat tecmint_deals.txt
# cat tecmint_deals.txt | awk '$4 ~ /tech/{print}'
# cat tecmint_deals.txt | awk '$4 ~ /Tech/{print}'

用 Awk 比较运算符匹配字符串

在上面的例子中,我们已经用了参数为 ~ /匹配字符/ 的比较操作,但是上面的两个命令给我们展示了一些很重要的问题。

当你运行带有 tech 字符串的命令时终端没有输出,因为在文件中没有 tech 这种字符串,但是运行带有 Tech 字符串的命令,你却会得到包含 Tech 的输出。

所以你应该在进行这种比较操作的时候时刻注意这种问题,正如我们在上面看到的那样,awk 对大小写很敏感。

你总是可以使用另一个命令的输出作为 awk 命令的输入来代替从一个文件中读取输入,这就像我们在上面看到的那样简单。

希望这些例子足够简单到可以使你理解 awk 的用法,如果你有任何问题,你可以在下面的评论区提问,记得查看 awk 系列接下来的章节内容,我们将关注 awk 的一些功能,比如变量,数字表达式以及赋值运算符。


via: http://www.tecmint.com/read-awk-input-from-stdin-in-linux/

作者:Aaron Kili
译者:vim-kakali
校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

转载于:https://blog.51cto.com/wutengfei/2401668

awk 系列Part7:awk 怎么从标准输入(STDIN)读取输入相关推荐

  1. awk 系列:awk 怎么读取标准输入(STDIN)

    在 awk 系列的前几节,我们看到大多数操作都是从一个文件或多个文件读取输入,或者你想要把标准输入作为 awk 的输入. 在 awk 系列的第七节中,我们将会看到几个例子,你可以筛选其他命令的输出代替 ...

  2. awk 系列Part5:如何使用 awk 复合表达式

    awk 系列:如何使用 awk 复合表达式 一直以来在查对条件是否匹配时,我们使用的都是简单的表达式.那如果你想用超过一个表达式来查对特定的条件呢? 本文,我们将看看如何在过滤文本和字符串时,结合多个 ...

  3. gawk linux,精通awk系列(1):安装新版本的gawk

    本文将要为您介绍的是精通awk系列(1):安装新版本的gawk,教程操作方法: 回到: Linux系列文章 Shell系列文章 Awk系列文章 安装新版本gawk awk有很多种版本,例如nawk.g ...

  4. linux条件语句awk,精通awk系列(18):awk流程控制之if、while、switch、for语句

    回到: Linux系列文章 Shell系列文章 Awk系列文章 流程控制语句 注:awk中语句块没有作用域,都是全局变量. if (condition) statement [ else statem ...

  5. AWK用法示例 awk命令

    AWK:Linux 管理员的智能工具包 作者 Emmett Dulaney AWK 实用工具带有其自己的自包含语言,它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一.这种编程及 ...

  6. linux awk语法格式,Awk是什么?一文带运维小白快速掌握Linux Awk用法

    原标题:Awk是什么?一文带运维小白快速掌握Linux Awk用法 作者:a8 Awk.sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以 ...

  7. linux shell awk next,使用awk的next命令的方法

    在awk系列文章中,我们来看一下next 命令 ,它告诉 awk 跳过你所提供的所有剩下的模式和表达式,直接处理下一个输入行.next 命令帮助你阻止运行命令执行过程中多余的步骤. 要明白它是如何工作 ...

  8. linux常用工具awk,linux中awk工具

    awk sed以行为单位处理文件,awk比sed强的地方在于不仅能以行为单位还能以列为单位处理文件.awk缺省的行分隔符是换行,缺省的列分隔符是连续的空格和Tab,但是行分隔符和列分隔符都可以自定义, ...

  9. awk 6.0 — awk模式之二

    awk的语法 awk [options] 'Pattern {Actions}' file1,file2- 之前介绍了三种模式:空模式,关系运算模式,BEGIN/END模式 正则模式 模式可以理解成条 ...

最新文章

  1. App.config的典型应用
  2. tensorflow 制定 CPU 或GPU
  3. Git最最常用的命令
  4. 不只是舒适,简直是享受,Google公司用的腰靠,到底有什么秘密?
  5. java中线程的状态以及线程栈分析
  6. 从文件中读取一个long型数_Python 从文件中读取数据
  7. Protues 仿真器件
  8. layui 确认,取消弹窗
  9. Mysql 什么是聚集索引和非聚集索引?
  10. 如何删除桌面右键菜单中的英特尔核心显卡选项
  11. Vulhub-coldfusion--CVE-2017-3066
  12. win10更新后任务栏卡死,桌面正常解决办法
  13. “软件工程”到底学什么(一)
  14. Pixel2Mesh-Tensorflow2
  15. mac应用程序不能打开问题解决
  16. 基于HTML5气3D仿真培训系统
  17. Vue3悬浮返回主页按钮设计与实现
  18. 99%的人看了它都会说这是一篇很全的tomcat服务❤️❤️[⭐建议收藏⭐]
  19. 从Java 9 到 Java 17之Java 10
  20. Linux系统中普通用户输入命令后出现“不在sudoers文件中,此事将被报告”的问题

热门文章

  1. Glide 这样用,更省内存!!! 1
  2. python实现面试程序
  3. Git命令集之六——查看仓库状态
  4. iOS开发之控制器创建与加载(生命周期)
  5. python的urllib2包基本使用方法
  6. rsync与inotify集成实现数据实时同步更新
  7. DOM(十四):代理检测和事件处理(跨浏览器)
  8. 戴文的Linux内核专题:07内核配置(3)
  9. 转《JAVA和C#得相同点和不同点》
  10. 在JavaScript面向对象编程中使用继承(5)