Linux-关于排序shell输出

标签 linux shell awk

我有这样一个自定义日志文件的输出:

8 24 yum
8 24 yum
8 24 make
8 24 make
8 24 cd
8 24 cd
8 25 make
8 25 make
8 25 make
8 26 yum
8 26 yum
8 26 make
8 27 yum
8 27 install
8 28 ./linux
8 28 yum

我想知道是否有统计第三个字段的特定值的数量。例如,我可能想计算 cdyuminstall 的数量。

最佳答案

您可以使用 awk 来获取第三个字段的值,并使用 wc -l 来计算数量。

awk '$3=="cd"||$3=="yum"||$3=="install"||$3=="cat" {print $0}' file | wc -l

您也可以使用 egrep,但这不仅会在第三个字段中查找这些词,还会在该行的其他任何地方查找这些词。

egrep "(cd|yum|install|cat)" file | wc -l

如果你想计算第三个字段中的特定单词,那么你可以在没有多个正则表达式的情况下执行上述操作。

awk '$3=="cd" {print $0}' | wc -l

关于Linux-关于排序shell输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18494222/

相关文章:

linux - 在 Linux 中从 CLI 运行 Visual Studio Code

bash - 在 csv 文件中查找列的索引号,但命令不显示结果?

创建一个简单的 shell 我的 for 循环为每个要读入的单词创建一个单独的进程

bash - 使用 bash awk 根据匹配/分隔符将列拆分为多个

c - 从已执行的应用程序获取标准输出

c - 将值列表传递到内核空间

linux - 我们可以在执行脚本后更改SHELL环境变量和解释器吗

regex - 按特定模式对文本文件中的列重新排序

bash - tail -f、awk 并输出到文件 >

linux - TCP SYN/SYN ACK 的 IP header 中的 Dscp 值