Linux Shell的常用命令

来源:互联网 发布:中国2016年m2数据 编辑:程序博客网 时间:2024/05/02 04:50
  • 利用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];thenmkdirp{base_d};
    fi

while循环:
while
do
do_something;
done

for循环:
for x in *.log.gz;
do
gzip -d ${x};
done

0 0
原创粉丝点击