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

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

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

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

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

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

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

列出 root 用户的文件

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

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

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

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

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

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

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

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

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

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

原文发布时间为:2016-07-25

本文来自云栖社区合作伙伴“Linux中国”

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

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

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

  2. linux命令终极系列awk

    AWK man 手册:http://man.linuxde.net/awk AWK编程的内容极多,这里只罗列简单常用的用法,更多请参考 http://www.gnu.org/software/gawk ...

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

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

  4. python从标准输入读取数据_在PYTHON中如何从标准输入读取内容stdin

    Python有几种方法来读取标准输入的数据. 1.sys.stdin sys.stdin提供了read()和readline()函数,如果想按一行行来读取,可以考虑使用它:import sys lin ...

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

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

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

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

  7. awk(4)-awk介绍

    1介绍 1.1 特点:awk是一种编程语言,可以直接运行不用提前编译:有内建的pipe 功能,可以将处理中数据传送给shell 处理,再将shell 处理结果传回awk,pipe让awk 能容易的使用 ...

  8. linux awk入门,awk入门应用

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

  9. linux awk命令详解(一) awk语法 awk运算 awk数组

    ===============================原文地址http://www.cnblogs.com/emanlee/p/3327576.html 好文章!!! Table of Con ...

最新文章

  1. Linux文本处理必杀技之awk应用详解
  2. 云的普及难易,云计算普及的难易
  3. 【线上分享】超分辨技术在RTC领域面临的机遇与挑战
  4. Matlab找到不知道的函数名
  5. 群晖docker安装cms_Nas码农篇:群晖Docker安装Gitlab
  6. java 枚举的实现原理
  7. 一定要知道的,那些Linux基本操作命令
  8. 2018.08.02 权限管理 笔记
  9. 《企业IT架构转型之道》边读边想——数字化运营能力
  10. 微信编辑器新手入门必读
  11. 小米手机相机英文翻译
  12. 论计算机的维护维修论文,论计算机的故障的处理论文范文
  13. python将经纬度标注在地图上_python读txt与写excel,将经纬度坐标点显示在地图上...
  14. access自动自动累计余额_怎样计算Access完成累计余额
  15. iOS精品资源汇总(持续更新)
  16. 自己写的手机游戏脚本
  17. 大数据之电商分析系统(一)
  18. PAT乙级1005,用C语言进行编程,继续卡拉兹猜想
  19. R语言 ggplot2 多图排列 Part(1)
  20. AI深度学习文章成果 -(SEO内容训练模型产出的内容)

热门文章

  1. vuex基础到模块化
  2. Js 拦截全局ajax请求
  3. 数据库 版本号是 661,打不开。此server支持 655 和更早的版本号。不支持降级路径...
  4. 途牛+巨杉 诠释在线旅游与大数据结合
  5. HighCharts基本使用
  6. 无线+传感技术将物联网推向云端
  7. Java程序猿笔记——基于redis分布式锁实现“秒杀”
  8. 使用websocket-sharp来创建c#版本的websocket服务
  9. 中文输入法不触发onkeyup事件的解决办法
  10. 关于数组集合之间的转换