标签:
利用wc命令统计文件行,单词数,字符数,利用sort排序和去重,再结合uniq可以进行词频统计。
cat file.txt sort hello.c | uniq -c | sort -nr |head -5
用cat
命令查看文件格式与内容。先对文件进行排序,再用uniq -c
命令统计不同单词及各个单词出现的次数,得到的结果就是次数后面紧挨的单词,然后使用sort -nr
对次数进行排序,并逆序显示,最后head -5
命令显示结果的前5行。
类似于sql语句:
select word,count(1) cnt from file group by word order by cnt desc limit 5;
探索性分析
常用命令:
gzip/tar
:压缩/解压cat/zcat
:文件查看less/more
:文件查看,支持gz压缩格式直接查看,分页查看文件head/tail
:查看文件前/后10行wc
:统计行数、单词数、字符数du -h -c -s
:查看空间占用
awk
:命令行下数据库操作工具
join/cut/paste
:关联文件/切分字段/合并文件fgrep/grep/egrep
:全局正则表达式查找find
:查找文件,并且对查找结果批量化执行任务sed
:流编辑器,批量修改、替换文件split
:对打文件进行切分处理,按多少行一个文件,或多少字节一个文件rename
:批量重名民(Ubuntu上带的Perl脚本,其他系统需要安装),使用-n
命令进行测试
gzip -d a.gz #解压缩日志
tar zcvf/jcvf one.tar.bz2 one #直接查看压缩日志
less a.gz #无需先解压
以z
开头的几个命令可以简单处理gzip
压缩文件,如zcat
:直接打印压缩文件,还有zgrep/zfgrep/zegrep
,在压缩文件中直接查找
#查询字符串,并显示匹配行的前3行和后3行内容 fgrep ‘yunjie-talk‘ -A 3 -B 3 log.txt #在当前目录(及子目录)下,所有的log文件中搜索字符串hacked by: find . -name "*.log" | xargs fgrep "hacked by"
fgrep,grep,egrep的一些区别:fgrep
按字符串的本来意思完全匹配,里面的正则元字符当成普通字符解析,如:fgrep “1.2.3.4”
只匹配IP地址:1.2.3.4,其中不会匹配任意字符。fgrep比grep快很多。grep只使用普通的一些正则。egrep或grep -E使用扩展的正则。
egrep “one|two” #匹配one或two grep -E -v ".jpg|.png|.gif|.css|.js" log.txt |wc -l
查找所有来自日本的IP的请求,先把所有来源IP提取出来,去重,找出日本的IP,放入文件japan.ip,再使用命令:
cat log.gz | gzip -d | fgrep -f japan.ip > japan.log
对hive中导出的文件,替换01
cat 0000* | sed ‘s/x1/ /g‘ > log.txt
其他常用命令
date
:命令行时间操作函数sort/uniq
:排序、去重、统计comm
:对两个排序文件进行按行比较(共同行、只出现在左边文件、只出现在右边文件)diff
:逐字符比较文件的异同,配合cdiff
,类似于github的显示效果curl/w3m/httpie
:命令行下进行网络请求iconv
:文件编码转换,如:iconv -份GB2312 -t UTF-8 1.csv > 2.csv
seq
:产生连续的序列,配合for循环使用标签:
原文地址:http://www.cnblogs.com/hanqing/p/5479496.html