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.csv
  • seq:产生连续的序列,配合for循环使用

Copyright © 吴华锦
雅致寓于高阁渔舟唱晚,古典悠然
格调外发园林绿树萦绕,馥郁清香

时间: 2024-09-30 10:47:24

Shell命令行的相关文章

Shell 命令行快捷键

在shell命令终端中,Ctrl+n相当于方向向下的方向键,Ctrl+p相当于方向向上的方向键. 在命令终端中通过它们或者方向键可以实现对历史命令的快速查找.这也是快速输入命令的技巧. 在命令终端中可以通过Ctrl+r 实现快速检索使用过的历史命令.Ctrl+r中r是retrieve中r. Ctrl+a:光标回到命令行首. (a:ahead) Ctrl+e:光标回到命令行尾. (e:end) Ctrl+b:光标向行首移动一个字符. (b:backwards) Ctrl+ f:光标向行尾移动一个字

〖Linux〗上传单个文件到FTP的Shell命令行(函数)

1 #!/bin/bash - 2 #=============================================================================== 3 # 4 # FILE: ftp_put_file.sh 5 # 6 # USAGE: ./ftp_put_file.sh 7 # 8 # DESCRIPTION: 9 # 10 # OPTIONS: --- 11 # REQUIREMENTS: --- 12 # BUGS: --- 13 # NO

几种在shell命令行中过滤adb logcat输出的方法

我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adb logcat输出的方法. 1.只显示需要的输出(白名单) 最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配.简单的匹配一行当中的某个字符串,例如 MyApp: adb logcat | grep MyApp       adb logcat | grep -i

使用jq工具在Shell命令行处理JSON数据

因为最近要处理一些 JSON 数据格式,一大早经过一番搜索后,最终找到了 jq 这个很棒的工具.jq 允许你直接在命令行下对 JSON 进行操作,包括分片.过滤.转换等等. 首先在mac下安装jq,使用brew install jq就可以了,前提是安装了homebrew,如果在linux ubuntu下,应该可以使用sudo apt-get install jq安装. 让我们通过几个例子来说明 jq 的功能: 一.输出格式化,漂亮的打印效果 如果我们用文本编辑器打开 JSON,有时候可能看起来会

* 和 ?在 shell 命令行中与在正则表达式中的区别

Linux 正则表达式 你有没有想过,在 shell 命令行中的 *,?和正则表达式中的*,?是否一样? 自打好多年前接触 DOS,就知道了* 和?这两个通配符(Wildcard),象 dir *.* 这样的命令也不知道敲了多少遍. 后来,开始用 Windows 3.1 这样的图形界面操作系统,命令行就就得越来越少了. 再后来,开始学习正则表达式,又开始接触 * 和 ? 这样的东西.在正则中它们被称为元字符(Meta Character). 再再后来,开始使用 Linux,于是又开始使用命令行,

SylixOS下Shell命令行执行模块内函数

1. 适用范围 本文档介绍了在Shell命令行执行内核模块内函数实现原理.   在VxWorks中,系统自带有在Shell命令行直接执行驱动.应用内函数的功能,此功能完善了驱动开发工程师.应用开发工程师的开发.调试的手段.为了让这类工程师能快速适应SylixOS,据此开发了类似的功能模块,目前第一版支持在Shell命令行执行内核模块内的函数. 2. SylixOS内核模块动态加载原理 2.1 SylixOS中的ELF文件 SylixOS中的ELF文件主要有三种: - obj文件: 一个源文件编译

自学Linux Shell2.1-进入shell命令行

点击返回 自学Linux命令行与Shell脚本之路 2.1-进入shell命令行 文件系统是文件存放在磁盘等存储设备上的组织方法.Linux系统能支持多种目前流行的文件系统,如EXT2. EXT3. FAT. FAT32. VFAT和ISO9660. 原文地址:https://www.cnblogs.com/yaoyaojcy/p/9172448.html

windows下shell命令行的常用操作命令

windows下shell命令行的常用操作命令 Command Shell是Windows内置的第一个使用批处理(.bat)文件自动执行日常任务,可以在Command Shell中运行更复杂的脚本 进入d盘直接输入 d: 切换目录 cd 显示目录 dir 进入某个文件夹并打开windows窗口 start ./filepath 远程连接ssh 与linux下一样,直接输入用户名@ip,输入密码即可 显示ip ipconfig Net user 功能:查看本机账户情况 net user xxx 1

hadoop2.5.2学习及实践笔记(五)—— HDFS shell命令行常见操作

附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/FileSystemShell.html 启动HDFS后,输入hadoop fs命令,即可显示HDFS常用命令的用法 [[email protected] hadoop-2.5.2]$ hadoop fs Usage: hadoop fs [generic options] [-appendToFile <lo

玩转shell命令行

移动光标快捷键 ctrl+f 向前移动一个字符 ctrl+b 向后移动一个字符 ctrl+a 移动到当前行首home ctrl+e 移动到当前行尾end alt+f 向前移动一个单词 alt+b 向后移动一个单词 ctrl+l 清屏,并在屏幕最上面开始一个新行 编辑命令行快捷键 ctrl+d 删除当前的字符(光标处在一个空白的命令行上,将会退出shell) alt+d 删除从光标到当前单词结尾的部分 ctrl+w 删除从光标到当前单词开始部分 ctrl+k 删除文本直到行的末尾 ctrl+u 删