如何读取AWD输入从STDIN在Linux  - 第7部分

在以前的部分awk的Knife系列中,我们看到从一个文件(S)读取输入居多,但如果你想从STDIN读取输入的内容。

在Awk系列的第7部分,我们将看几个例子,你可以过滤其他命令的输出,而不是从文件读取输入。

我们将与启动目录工具的工作原理类似于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命令来查看文件名为youcl_deals.txt的内容,我们只需要查看型技术的交易,所以我们应运行以下命令:

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

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

在上面的例子中,我们已经使用了值~ /pattern/比较运算符,但有两个命令来尝试和带出一些非常重要的。

当您运行模式高科技没有什么命令打印出来,因为没有这种类型的交易 ,但有技术 ,你会得到技术型的交易。

所以在使用这个比较运算符时一定要小心,它是大小写敏感的,如我们上面看到的。

你可以总是使用另一个命令的输出作为awk的输入,而不是从文件中读取输入,这是非常简单的,我们在上面的例子中看到。

希望的例子是明确的足够你明白,如果你有任何疑问,您可以通过下面的评论部分表达出来,并记得要检查该系列的下一部分,我们将在awk的功能,如变量数字表达式 ,并期待赋值操作符

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏