bash - 按参数过滤的总数 - bash
问题描述
有没有办法获得按某些参数过滤的总行数?例如,我有一个日志文件,其中包含:
COMPLETED: location: DEN brand: A
COMPLETED: location: LHR brand: A
COMPLETED: location: EWR brand: C
COMPLETED: location: DEN brand: A
COMPLETED: location: LHR brand: B
COMPLETED: location: JFK brand: C
有没有办法编写可以返回每个位置和品牌的总行数的 grep 命令。例如,执行的命令将返回
DEN A 3
LHR A 1
LHR B 1
这必须是动态的,因为位置可能不同。所以我们不能只做类似的事情grep 'location: DEN' | grep 'brand: A' | wc -l >> file.log
任何的意见都将会有帮助。谢谢。
解决方案
您也可以使用 Bash 命令执行此操作:
cat input_file | sed '/^$/d' | sort | uniq -c | sed 's/^ \+//' | cut -d' ' -f1,4,6
在这种情况下,输出将如下:
2 DEN A
1 EWR C
1 JFK C
1 LHR A
1 LHR B
推荐阅读
- python - 如何在熊猫数据框中隔离两次,然后在更大的熊猫数据框中仅修改这些值?
- javascript - 试图找到以 a 开头的单词
- sql - 用空格分隔的 SQL 拆分行数据
- database - sqlite3 将多个数据库合二为一
- cordova - 我想在 cordova Activity 上运行一个 Android 片段,以将 YouTube Android Player API 合并到我的混合应用程序中
- odbc - Python teradata Uda Exec ODBC连接问题
- oracle-adf - Oracle MAF 功能约束不适用于具有相同属性的多个约束
- r - R:将一个变量的图与其余变量配对
- firebase - 最大用户数
- bootstrap-4 - 隐藏标题导航