- 利用wc命令统计文件行,单词数,字符数,利用sort排序和去重,在结合uniq进行词频统计
先用cat命令,了解一下文件的大概格式与内容,发现每行为一个单词,现在需要统计这些单词出现的频率,以及显示出现次数最多的5个单词
先对文件进行排序,这样相同的单词在紧挨着的行,然后使用uniq -c命令,统计不同的单词及各个单词出现的次数。这样得到的结果就是次数后面紧挨着单词,然后使用sort -nr对次数进行排序,并逆序显示,最后head命令显示结果的前5行
- 如果是压缩的文件,并且没有明确的分析目标,首先是要将文件解压缩,然后查看文件占用的空间大小
gzip/tar:压缩/解压
cat/zcat:文件查看
less/more:文件查看,支持gz压缩格式直接查看(more和less的区别就是less更强大,less支持向后翻页,more并不支持)
head/tail:查看文件前/后10行
wc:统计行数、单词数、字符数
du -h -c -s:查看空间占用
- 有时可能需要提取一行中某个字段的内容,或者需要搜索某些行出来,或者需要对付进行修改:
awk:命令行下的数据库操作工具
join/cut/paste:关联文件/切分字段/合并文件
fgrep/grep/egrep:全局正则表达式查找
find:查找文件,并且对查找结果批量化执行任务
sed:流编辑器,批量修改、替换文件
split:对大文件进行切分处理,按多少行一个文件,或者多少字节一个文件
rename:批量重命名(Ubuntu上带的perl脚本,其它系统需要安装),使用-n命令进行测试
以z开头的几个命令可以简单的处理gzip压缩文件,如zcat:直接打印压缩文件,还有zgrep/zfgrep/zegrep在压缩文件中直接查找
fgrep grep egrep的区别
fgrep按字符串的本来意思完全匹配,里面的正则元字符当成普通字符解析,如:fgrep “1.2.3.4”则只匹配ip地址,“.”不会匹配任意字符。fgrep比grep快,写起来简单,不用转义。
grep只使用普通的正则
egrep匹配扩展的正则其他常用命令
下面这些命令工具是一些基本的统计命令,针对日志的时间等:
date:命令行时间操作函数
sort/uniq:排序、去重、统计
comm:对两个排序文件进行按行比较(共同行、只出现在左边文件、只出现在右边文件)
diff:逐字符比较文件的异同,配合cdiff,类似于github的显示效果
curl/w3m/httpie:命令行下进行网络请求
iconv:文件编码转换,如:iconv -f GB2312 -t UTF8 1.csv > 2.csv
seq:产生连续的序列,配合for循环使用批量操作
shell中一些批量操作的命令:
if条件判断:
if [ -d based];thenmkdir−p {base_d};
fi
while循环:
while
do
do_something;
done
for循环:
for x in *.log.gz;
do
gzip -d ${x};
done