awk 系列Part7:awk 怎么从标准输入(STDIN)读取输入
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)读取输入相关推荐
- awk 系列:awk 怎么读取标准输入(STDIN)
在 awk 系列的前几节,我们看到大多数操作都是从一个文件或多个文件读取输入,或者你想要把标准输入作为 awk 的输入. 在 awk 系列的第七节中,我们将会看到几个例子,你可以筛选其他命令的输出代替 ...
- awk 系列Part5:如何使用 awk 复合表达式
awk 系列:如何使用 awk 复合表达式 一直以来在查对条件是否匹配时,我们使用的都是简单的表达式.那如果你想用超过一个表达式来查对特定的条件呢? 本文,我们将看看如何在过滤文本和字符串时,结合多个 ...
- gawk linux,精通awk系列(1):安装新版本的gawk
本文将要为您介绍的是精通awk系列(1):安装新版本的gawk,教程操作方法: 回到: Linux系列文章 Shell系列文章 Awk系列文章 安装新版本gawk awk有很多种版本,例如nawk.g ...
- linux条件语句awk,精通awk系列(18):awk流程控制之if、while、switch、for语句
回到: Linux系列文章 Shell系列文章 Awk系列文章 流程控制语句 注:awk中语句块没有作用域,都是全局变量. if (condition) statement [ else statem ...
- AWK用法示例 awk命令
AWK:Linux 管理员的智能工具包 作者 Emmett Dulaney AWK 实用工具带有其自己的自包含语言,它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一.这种编程及 ...
- linux awk语法格式,Awk是什么?一文带运维小白快速掌握Linux Awk用法
原标题:Awk是什么?一文带运维小白快速掌握Linux Awk用法 作者:a8 Awk.sed与grep,俗称Linux下的三剑客,它们之间有很多相似点,但是同样也各有各的特色,相似的地方是它们都可以 ...
- linux shell awk next,使用awk的next命令的方法
在awk系列文章中,我们来看一下next 命令 ,它告诉 awk 跳过你所提供的所有剩下的模式和表达式,直接处理下一个输入行.next 命令帮助你阻止运行命令执行过程中多余的步骤. 要明白它是如何工作 ...
- linux常用工具awk,linux中awk工具
awk sed以行为单位处理文件,awk比sed强的地方在于不仅能以行为单位还能以列为单位处理文件.awk缺省的行分隔符是换行,缺省的列分隔符是连续的空格和Tab,但是行分隔符和列分隔符都可以自定义, ...
- awk 6.0 — awk模式之二
awk的语法 awk [options] 'Pattern {Actions}' file1,file2- 之前介绍了三种模式:空模式,关系运算模式,BEGIN/END模式 正则模式 模式可以理解成条 ...
最新文章
- App.config的典型应用
- tensorflow 制定 CPU 或GPU
- Git最最常用的命令
- 不只是舒适,简直是享受,Google公司用的腰靠,到底有什么秘密?
- java中线程的状态以及线程栈分析
- 从文件中读取一个long型数_Python 从文件中读取数据
- Protues 仿真器件
- layui 确认,取消弹窗
- Mysql 什么是聚集索引和非聚集索引?
- 如何删除桌面右键菜单中的英特尔核心显卡选项
- Vulhub-coldfusion--CVE-2017-3066
- win10更新后任务栏卡死,桌面正常解决办法
- “软件工程”到底学什么(一)
- Pixel2Mesh-Tensorflow2
- mac应用程序不能打开问题解决
- 基于HTML5气3D仿真培训系统
- Vue3悬浮返回主页按钮设计与实现
- 99%的人看了它都会说这是一篇很全的tomcat服务❤️❤️[⭐建议收藏⭐]
- 从Java 9 到 Java 17之Java 10
- Linux系统中普通用户输入命令后出现“不在sudoers文件中,此事将被报告”的问题