AWK 怎么读取标准输入(STDIN)

简介:

在第一个例子下面,我们使用 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 的一些功能,比如变量,数字表达式以及赋值运算符。



本文转自Linux就该这么学博客园博客,原文链接:http://www.cnblogs.com/linuxprobe/p/5740176.html,如需转载请自行联系原作者

相关文章
|
7月前
|
Linux Perl
Linux|从 STDIN 读取 Awk 输入
Linux|从 STDIN 读取 Awk 输入
52 4
|
7月前
|
Unix Java Linux
Linux脚本中的字符处理与awk编程|WC统计
Linux脚本中的字符处理与awk编程|WC统计
101 0
|
6月前
|
Shell Linux
shell循环读文件 Linux脚本读文件
shell循环读文件 Linux脚本读文件
60 3
|
7月前
|
存储 Linux
|
7月前
|
Perl
在awk中,从多个文件读取数据
在awk中,从多个文件读取数据
90 3
|
7月前
|
Perl
awk命令中逐行处理
awk命令中逐行处理
130 3
|
7月前
|
Shell
在Shell中,您可以同时重定向标准输出(STDOUT)和错误输出(STDERR)
在Shell中,您可以同时重定向标准输出(STDOUT)和错误输出(STDERR)
640 1
|
Python
Python中标准输入(stdin)、标准输出(stdout)、标准错误(stdout)的用法
Python中标准输入(stdin)、标准输出(stdout)、标准错误(stdout)的用法
158 0