这是我日常工作统计日志用到的,现记录下:
比如有这样一个日志:
需要统计push,的点击数量,按cookie去重,因为一个设备可能点击多次
第一步,先看看这几列,打印出来看看,
awk -F "," '{print $2" "$3" "$6" "$7" "$9}' pushLog.log
第二步,按上面的几列去重
awk -F "," '!a[$2,$3,$6,$7,$9]++' pushLog.log
第三步, 统计
awk -F "," '!a[$2,$3,$6,$7,$9]++' pushLog.log |awk -F "," '{a[$2" "$3" "$6" "$9]+=1}END{for(i in a) printf "%s %s\n",i,a[i]}' | sort -k 5 -n -r | head -n 15
结果如图:
相关推荐
第一种方法中使用了一个额外的计数器`i`来计算行数,而第二种方法直接使用了`awk`的内置变量`NR`来表示总的输入记录数。 #### 四、求最大值 为了找到第二列的最大值,可以使用以下脚本: ```bash [root@liuhx~]#...
在IT行业中,Linux工具是操作系统领域中的重要组成部分,尤其对于系统管理员、开发人员以及热衷于开源技术的用户来说,熟练掌握Linux工具至关重要。Linux工具不仅涵盖了日常的文件管理、进程控制,还涉及网络通信、...
可以创建一个awk脚本来统计不同状态码的请求占比: ``` awk '{ status[$6]++ } END { for (i in status) print i, status[i], "\n"}' /var/log/nginx/access.log ``` 10. **使用bash循环**:遍历日志文件,执行...
数据处理工具包括"sort"、"uniq"等,用于数据的排序、去重和处理。"grep"、"awk"、"sed"等工具也可以用于数据处理。 压缩与解压缩工具如"zip"、"tar"、"gzip"、"bzip2"等,在Linux中广泛使用。这些工具用于打包和...
### Linux文本处理命令合集详解 #### diff/patch:查找/修补文本差异 - **diff** 命令用于比较两个文件之间的不同之处。 - `diff version1.txt version2.txt`:简单地列出两个文件之间的不同行。 - `diff -u ...
`awk`是一个功能强大的数据分析工具,可以处理复杂的文本处理任务,例如:`awk '{print $1}' file.txt`打印文件的第一列。 这些Shell工具的灵活运用,能够极大提高Linux环境下文本处理的效率。虽然单行命令原则可以...
Linux Shell 中的 Sort 命令是非常实用的命令之一,它可以对文本文件进行排序、去重、提取等操作。本文将从 Sort 命令的基本语法开始,逐步深入到高级用法,最后通过实践案例来巩固所学知识。 一、Sort 命令的基本...
例如`$ ps -ef | sort | uniq | grep -v sh | more`,这个命令组合首先列出所有进程(`ps -ef`),然后按字母顺序排序(`sort`),去重(`uniq`),排除名为`sh`的进程(`grep -v sh`),最后用`more`分页显示结果。...
以上介绍的是如何利用Shell脚本结合Linux系统的文本处理工具来统计PV、UV以及独立IP的基本方法。这种方法简单且高效,非常适合用于日常的日志分析工作。当然,在实际应用中还可以根据需求进一步优化脚本,例如增加...
2. **统计IP地址**:在Linux中,可以使用`awk`、`uniq`和`sort`命令组合来统计文件中第一列的IP地址。首先使用`awk`提取第一列,然后通过`sort`排序,最后用`uniq`去重,得到不重复的IP地址列表。 3. **查看网络...
11. `awk`:强大的文本处理工具,可以处理文件的列数据,进行统计计算等。例如,`awk '{print $1,$3,$5}'`打印第1、3、5列,`awk '{sum += $1} END {print sum}'`对第一列求和。 12. `sort`:对输入数据进行排序。`...
或者,如果需要对多列进行排序,可以结合`cut`命令来指定需要排序的列: ```bash $ cut -d ',' -f 2,1 文件 | sort -t ',' -k 1,1n -k 2,2nr ``` 这个例子中,先用`cut`以逗号为分隔符选取第一列和第二列,然后使用...
此例中,Mapper将每行数据拆分成多个键值对,Reducer负责收集所有相同的键,并按字母顺序输出。 #### 5. 去重伪代码 在Reduce阶段去重,可使用Map集合存储键值,避免重复输出: ```java // Reducer public void ...
适合于将多列数据合并成单个文件。 4. **tr**:转换或删除字符。例如,`tr '[:upper:]' '[:lower:]' 将所有大写字母转换为小写。 5. **join**:基于共同字段合并两个文件的行。适用于数据库操作。 6. **split**:...
根据提供的文件信息,我们...以上内容涵盖了数据库管理、Linux命令行操作、文件系统管理和shell脚本编程等多个方面,对于从事IT行业的技术人员来说非常实用。通过掌握这些知识点,可以更高效地进行系统维护和开发工作。
例如,`find`命令用于查找文件,`grep`用于搜索文本,`sed`和`awk`进行文本处理,`sort`和`uniq`处理排序和去重,`tar`和`gzip`则用于文件打包和压缩。 五、在嵌入式Linux中的应用 在嵌入式系统中,Shell脚本常...
在实际应用中,这样的脚本可能会使用各种工具,如`awk`进行文本处理,`sed`进行字符串替换,`grep`进行模式匹配,以及`sort`和`uniq`对数据进行排序和去重等。 为了确保“pipeline-worker”的稳定运行和高效性能,...
Bash Shell 编程是一种在 Unix 和类 Unix 操作系统(如 Linux)上广泛使用的脚本编程方式。通过 Bash Shell 编程,用户可以自动化执行一系列命令或任务,极大地提高了工作效率。本文将详细介绍 Bash Shell 编程的...