当前位置: 首页 > news >正文

Linux|从 STDIN 读取 Awk 输入

简介

在之前关于 Awk 工具的系列文章中,主要探讨了如何从文件中读取数据。但如果你希望从标准输入(STDIN)中读取数据,又该如何操作呢?

在本文中,将介绍几个示例,展示如何使用 Awk 来过滤其他命令的输出,而不仅仅是读取文件内容。

首先,将以 dir 工具为例,它的功能与 ls 命令类似。在第一个示例中,将 dir -l 命令的输出作为 Awk 的输入数据,以此来打印出当前目录下文件的所有者用户名、所属组名,以及该用户拥有的文件列表。

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

再来看一个例子,在这个例子中,将利用 awk 表达式来实现一个特定功能:筛选并打印出由 root 用户拥有的文件。具体的做法是通过一个过滤表达式来完成,如下所示的 awk 命令:

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

上述命令包括(==)比较运算符,帮助过滤当前目录中由 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}'
alt

在上面的例子中,使用了值 ~ /pattern/ 比较运算符,但有两个命令可以尝试并提取出非常重要的内容。

当您使用模式 tech 运行命令时,因为没有那种类型的交易,所以什么都不会打印出来,但是使用 Tech 时,您会得到类型为 Tech 的交易。

因此,在使用这种比较运算符时一定要小心,正如上面所看到的,它是区分大小写的。

您可以随时使用另一个命令的输出作为 awk 的输入,而不是从文件中读取输入,这就像在上面的例子中所看到的那样,非常简单。

本文由 mdnice 多平台发布

http://www.lryc.cn/news/334716.html

相关文章:

  • 关于K8S集群中maste节点r和worker节点的20道面试题
  • 基于 OpenHarmony HistogramComponent 柱状图开发指南
  • C语言指针相关
  • 设计模式:责任链模式
  • 【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.6p1(亲测无问题,建议收藏)
  • 宁波中墙建材对于蒸压加气混凝土砌块2024年前景预测
  • 【神经网络】卷积神经网络CNN
  • 微信小程序-接入sse数据流并实现打字机效果( ChatGPT )
  • 深入了解iOS内存(WWDC 2018)笔记-内存诊断
  • 《C语言深度解剖》(4):深入理解一维数组和二维数组
  • 信号处理基础
  • 原地移除数组中所有的元素val,要求时间复杂度为O(N),空间复杂度为O(1)
  • 如何提升产品用户体验?4个工具+6张案例,让你快速吃透!
  • C++学习笔记九--模版
  • 19、差分矩阵
  • wordpress外贸独立站模板
  • HTTP/1.0、HTTP/1.1、HTTP/2.0、HTTP3.0的区别
  • 聚合DNS管理系统v1.0全新发布 域名解析管理系统
  • LabVIEW厂房漏水检测监控系统
  • (3)(3.1) 英特尔Realsense深度摄像头(二)
  • go interface{} 作为函数参数
  • Django之REST Client插件
  • java实现UDP数据交互
  • 护眼台灯怎么选看哪些指标?不踩雷护眼台灯十大排名
  • Web API(六)之正则表达式
  • 304. 前缀和技巧中的边界值处理
  • ios swift5 “Sign in with Apple“(使用苹果登录)怎样接入(第三方登录)集成AppleID登录
  • 时间系列预测总结
  • NineData创始人CEO叶正盛受邀参加『数据技术嘉年华』的技术大会
  • nginx访问路径映射资源目录