bash 排序

    一、sort   

    将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出,默认不删除相同的行。以下是一些常用参数:

     -b:忽略前面所有的空格

     -f:将小写字母全部转化成大写,再比较。忽略大小写

     -g:调用strtod命令将数字全部转化为浮点类型以后,再比较

    -n:直接按照数字进行排序

    -r:倒序排列

    -i:忽略非显示字符

    -d:按照字典顺序排序  

    -o:将标准输出到文件

    -k:指定按照哪个域进行排序(1.3指第一个域的第三个字符开始)

    -t:指定分隔符,取代空格

    -c:检查文件是否已经排序

    -u:相同的行只输出第一个       

    二、uniq

    删除相邻的行中的重复行。常用参数:

    -i:忽略大小写

    -u:只输出没有重复的行

    -c:在第一个域显示重复的行出现的次数

    -d:只输出重复的行

    一个例子,nginx的access日志中,筛选出访问量前十的客户端ip

cat gitlab_access.log | awk '{print $1}' | sort | uniq -c | sort -grk 1

    三、wc

    统计文件中的信息,常见参数:

    -c:字节数

    -l:行数

    -m:字符数

    -w:单词数,以空格为分隔

你可能感兴趣的:(bash 排序)