Shell命令行
利用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.csvseq:产生连续的序列,配合for循环使用
Shell命令行的更多相关文章
- 几种在shell命令行中过滤adb logcat输出的方法
我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adblog ...
- 自学Linux Shell2.1-进入shell命令行
点击返回 自学Linux命令行与Shell脚本之路 2.1-进入shell命令行 进入文本命令行界面(CLI)两种方法: 控制台终端 图形化终端 1. 通过Linux控制台终端访问CLI 按下Ctrl ...
- Hadoop HDFS的shell(命令行客户端)操作实例
HDFS的shell(命令行客户端)操作实例 3.2 常用命令参数介绍 -help 功能:输出这个命令参数手册 -ls 功能:显示目录信息 示例: hadoop fs ...
- Shell 命令行,写一个自动整理 ~/Downloads/ 文件夹下文件的脚本
Shell 命令行,写一个自动整理 ~/Downloads/ 文件夹下文件的脚本 在 mac 或者 linux 系统中,我们的浏览器或者其他下载软件下载的文件全部都下载再 ~/Downloads/ 文 ...
- HDFS shell命令行常见操作
hadoop学习及实践笔记—— HDFS shell命令行常见操作 附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop ...
- Shell 命令行实现将一个站点页面全部下载到本地并替换其中链接的脚本
Shell 命令行实现将一个站点页面全部下载到本地并替换其中链接的脚本 不知道为什么,我总想用 Shell 脚本来实现把一个站点内容给下载下来.但是下载什么站点我确不知道.今天尝试了一下利用 curl ...
- Shell 命令行,实现对若干网站状态批量查询是否正常的脚本
Shell 命令行,实现对若干网站状态批量查询是否正常的脚本 如果你有比较多的网站,这些网站的运行状态是否正常则是一件需要关心的事情.但是逐一打开检查那简直是一件太糟心的事情了.所以,我想写一个 sh ...
- Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件
Shell 命令行 从日志文件中根据将符合内容的日志输出到另一个文件 前面我写了一篇博文Shell 从日志文件中选择时间段内的日志输出到另一个文件,利用循环实现了我想要实现的内容. 但是用这个脚本的同 ...
- Shell 命令行统计 apache 网站日志访问IP以及IP归属地
Shell 命令行统计 apache 网站日志访问IP以及IP归属地 我的一个站点用 apache 服务跑着,积攒了很多的日志.我想用 shell 看看有哪些人访问过我的站点,并且他来自哪里. 因为日 ...
- Shell 命令行获取本机IP,grep的练习
Shell 命令行获取本机IP,grep的练习 在 mac 下面输入 ifconfig 或者在 linux 下面输入 ip a 就可以得到我们的网卡信息.不过通常情况下,我们需要查看的是我们的IP地址 ...
随机推荐
- Deppon接口开发
一.1) 支持的传输协议 http ,暂时只支持HTTP协议进行通信. (2) 支持的数据传输格式 Json ,所有接口暂只支持json消息格式. (3) 编码格式:UTF-8 交互编码格 ...
- sublime 快键
Keyboard Shortcuts - Windows/Linux Warning This topic is a draft and may contain wrong information. ...
- WPF学习记录1:ListView的一个模板
在网上找的一个模板,放在这里,作为笔记,收集 <ListView Grid.Column=" Name="ListmuLu" > <ListView.I ...
- Asp.net MVC5中Html.DropDownList的使用
一.静态下拉列表项的绑定 在下拉列表中绑定静态项,我们可以通过 SelectListItem 的集合作为数据源的下拉列表. @Html.DropDownList("dropRoles&quo ...
- Android集成科大讯飞SDK语音听写及语音合成功能实现
前言 现在软件设计越来越人性化.智能化.一些常见的输入都慢慢向语音听写方向发展,一些常见的消息提示都向语音播报发展.所以语音合成和语音听写是手机软件开发必不可少的功能.目前国内这方面做的比较好的应该是 ...
- dojo.create\dojo.place\dojo.empty\dojo.destroy\dojo.body
1.dojo.create 1.create a node; 2.set attributes on it; 3.place it in the DOM. dojo.create(/*String| ...
- C#事件、委托简单示例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- SQLServer服务器数据库之间的数据操作(完整版)
分类: 数据库开发技术 ---------------------------------------------------------------------------------- -- Au ...
- 使用SQLiteHelper创建数据库并插入数据
参考<疯狂android讲义>8.4节P424 1.获取SQLiteDatabase实例有2种方法,一是直接new SQLiteDatabase(),另一种使用SQLiteHelper.一 ...
- 基于Cookie跨域的单点登录问题
由于项目中,需要用的单点登录,主要的思路是:系统1:用户名密码-->写入Cookie-->其他系统读取Cookie. 1.在同一个服务器下的Cookie共享 @Component(&quo ...