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 的一些功能,比如变量,数字表达式以及赋值运算符。
原文发布时间为:2016-07-25
本文来自云栖社区合作伙伴“Linux中国”
awk 系列:awk 怎么读取标准输入(STDIN)相关推荐
- awk 系列Part7:awk 怎么从标准输入(STDIN)读取输入
awk 系列:awk 怎么从标准输入(STDIN)读取输入 在 awk 系列的前几节,我们看到大多数操作都是从一个文件或多个文件读取输入,或者你想要把标准输入作为 awk 的输入. 在 awk 系列的 ...
- linux命令终极系列awk
AWK man 手册:http://man.linuxde.net/awk AWK编程的内容极多,这里只罗列简单常用的用法,更多请参考 http://www.gnu.org/software/gawk ...
- awk 系列Part5:如何使用 awk 复合表达式
awk 系列:如何使用 awk 复合表达式 一直以来在查对条件是否匹配时,我们使用的都是简单的表达式.那如果你想用超过一个表达式来查对特定的条件呢? 本文,我们将看看如何在过滤文本和字符串时,结合多个 ...
- python从标准输入读取数据_在PYTHON中如何从标准输入读取内容stdin
Python有几种方法来读取标准输入的数据. 1.sys.stdin sys.stdin提供了read()和readline()函数,如果想按一行行来读取,可以考虑使用它:import sys lin ...
- 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(4)-awk介绍
1介绍 1.1 特点:awk是一种编程语言,可以直接运行不用提前编译:有内建的pipe 功能,可以将处理中数据传送给shell 处理,再将shell 处理结果传回awk,pipe让awk 能容易的使用 ...
- linux awk入门,awk入门应用
awk概述 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linux ...
- linux awk命令详解(一) awk语法 awk运算 awk数组
===============================原文地址http://www.cnblogs.com/emanlee/p/3327576.html 好文章!!! Table of Con ...
最新文章
- Linux文本处理必杀技之awk应用详解
- 云的普及难易,云计算普及的难易
- 【线上分享】超分辨技术在RTC领域面临的机遇与挑战
- Matlab找到不知道的函数名
- 群晖docker安装cms_Nas码农篇:群晖Docker安装Gitlab
- java 枚举的实现原理
- 一定要知道的,那些Linux基本操作命令
- 2018.08.02 权限管理 笔记
- 《企业IT架构转型之道》边读边想——数字化运营能力
- 微信编辑器新手入门必读
- 小米手机相机英文翻译
- 论计算机的维护维修论文,论计算机的故障的处理论文范文
- python将经纬度标注在地图上_python读txt与写excel,将经纬度坐标点显示在地图上...
- access自动自动累计余额_怎样计算Access完成累计余额
- iOS精品资源汇总(持续更新)
- 自己写的手机游戏脚本
- 大数据之电商分析系统(一)
- PAT乙级1005,用C语言进行编程,继续卡拉兹猜想
- R语言 ggplot2 多图排列 Part(1)
- AI深度学习文章成果 -(SEO内容训练模型产出的内容)