[02]inux与Bash教程-05-Linux常用统计命令

1、目录
    排序:sort
    去除重复:uniq    --unique
    字符统计:wc     --Word count
2、sort
    主要用途:将所有输入文件的内容排序后并输出。当没有文件或文件为-时,读取标准输入。
    -b:忽略开头的空白字符
    -f:将小写字母看作为大写字母
    -h:根据存储容量排序(KB/MB/GB)
    -n:按数字排序
    -o:把结果写入文件
    -r:以相反的顺序来执行
    -t:指定分隔符。默认为空格
    -V:按照数字版本排序
    -k:指定排序的关键字,与-t参数配合使用
    参考:https://wangchujiang.com/linux-command/c/sort.html
    --batch-size=NMERGE                    一次合并最多NMERGE个输入;超过部分使用临时文件。
    -c, --check, --check=diagnose-first    检查输入是否已排序,该操作不会执行排序。
    -C, --check=quiet, --check=silent      类似于 -c 选项,但不输出第一个未排序的行。
    --compress-program=PROG                使用PROG压缩临时文件;使用PROG -d解压缩。
    --debug                                注释用于排序的行,发送可疑用法的警报到stderr。
    --files0-from=F                        从文件F中读取以NUL结尾的所有文件名称;如果F是 - ,那么从标准输入中读取名字。
    -k, --key=KEYDEF                       通过一个key排序;KEYDEF给出位置和类型。
    -m, --merge                            合并已排序文件,之后不再排序。
    -o, --output=FILE                      将结果写入FILE而不是标准输出。
    -s, --stable                           通过禁用最后的比较来稳定排序。
    -S, --buffer-size=SIZE                 使用SIZE作为内存缓存大小。
    -t, --field-separator=SEP              使用SEP作为列的分隔符。
    -T, --temporary-directory=DIR          使用DIR作为临时目录,而不是 $TMPDIR 或 /tmp;多次使用该选项指定多个临时目录。
    --parallel=N                           将并发运行的排序数更改为N。
    -u, --unique                           同时使用-c,严格检查排序;不同时使用-c,输出排序后去重的结果。
    -z, --zero-terminated                  设置行终止符为NUL(空),而不是换行符。
    --help                                 显示帮助信息并退出。
    --version                              显示版本信息并退出。
    用法:sort -g abc  --根据数字从小到大排序,其中abc是文件名。
    用法:cat file|sort  --会把file这个文件里面的内容从小到大排序,数字123456
    用法:cat file|sort -h  --会把file这个文件里面的内容从小到大排序,按kb mb gb
    用法:cat file|sort -hr  --会把file这个文件里面的内容从小到大排序,按kb mb gb,r代表reverse,从大到小排序
3、uniq
    参考:https://wangchujiang.com/linux-command/c/uniq.html
    用途:显示或忽略重复的行
    主要用途:将输入文件(或标准输入)中邻近的重复行写入到输出文件(或标准输出)中。当没有选项时,邻近的重复行将合并为一个。
    选项:
        -c, --count                在每行开头增加重复次数。
        -d, --repeated             所有邻近的重复行只被打印一次。
        -D                         所有邻近的重复行将全部打印。
        --all-repeated[=METHOD]    类似于 -D,但允许每组之间以空行分割。METHOD取值范围{none(默认),prepend,separate}。
        -f, --skip-fields=N        跳过对前N个列的比较。
        --group[=METHOD]           显示所有行,允许每组之间以空行分割。METHOD取值范围:{separate(默认),prepend,append,both}。
        -i, --ignore-case          忽略大小写的差异。
        -s, --skip-chars=N         跳过对前N个字符的比较。
        -u, --unique               只打印非邻近的重复行。
        -z, --zero-terminated      设置行终止符为NUL(空),而不是换行符。
        -w, --check-chars=N        只对每行前N个字符进行比较。
        --help                     显示帮助信息并退出。
        --version                  显示版本信息并退出。
    参数
        INPUT(可选):输入文件,不提供时为标准输入。
        OUTPUT(可选):输出文件,不提供时为标准输出。
    返回值
        返回0表示成功,返回非0值表示失败。
    例子
        注意:命令2和命令3结果一样,命令1仅作了相邻行的去重。
        uniq file.txt
        sort file.txt | uniq
        sort -u file.txt  ---常用命令
    只显示单一行,区别在于是否执行排序:
        uniq -u file.txt
        sort file.txt | uniq -u  --重点,和sort命令组合使用
    统计各行在文件中出现的次数:
        sort file.txt | uniq -c
    在文件中找出重复的行:
        sort file.txt | uniq -d
    注意
        uniq只检测邻近的行是否重复,sort -u将输入文件先排序然后再处理重复行。
        该命令是GNU coreutils包中的命令,相关的帮助信息请查看man -s 1 uniq,info coreutils 'uniq invocation'
    例子:uniq file.txt  --只检测邻近的行是否重复。去除临近的重复行
          uniq -c file.txt  --在每行开头增加重复次数
4、wc
    参考:https://wangchujiang.com/linux-command/c/wc.html
    wc
        统计文件的字节数、字数、行数
    补充说明
        wc命令 统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
            利用wc指令我们可以计算文件的Byte数、字数或是列数,若不指定文件名称,
            或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。wc同时也给出所指定文件的总统计数。
    语法
        wc(选项)(参数)
        wc [选项]... [文件]...
        wc [选项]... --files0-from=F
    选项
        -c # 统计字节数,或--bytes:显示Bytes数。
        -l # 统计行数,或--lines:显示列数。
        -m # 统计字符数,或--chars:显示字符数。
        -w # 统计字数,或--words:显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
        -L # 打印最长行的长度,或--max-line-length。
        -help     # 显示帮助信息。
        --version # 显示版本信息。
    参数
        文件:需要统计的文件列表。
    例子
        wc -l *       # 统计当前目录下的所有文件行数及总计行数。
        wc -l *.js    # 统计当前目录下的所有 .js 后缀的文件行数及总计行数。
        find  . * | xargs wc -l # 当前目录以及子目录的所有文件行数及总计行数。
        wc -l file2.txt       # 统计当前目录下的所有文件行数及总计行数。
    查看文件的字节数、字数、行数
        wc test.txt
        # 输出结果
        7     8     70     test.txt
        # 行数 单词数 字节数 文件名
    用wc命令怎么做到只打印统计数字不打印文件名
        wc -l < test.txt
        # 输出结果
        7
    用来统计当前目录下的文件数(不包含隐藏文件)
        # 要去除TOTAL行
        expr $(ls -l | wc -l) - 1
        # 输出结果
        8
    统计当前目录下的所有文件行数及总计行数
        [root@centos7 ~]# wc -l *
              21 LICENSE
             270 README.md
        wc: example: read: Is a directory
             785 lerna-debug.log
              25 lerna.json
        wc: node_modules: read: Is a directory
           23603 package-lock.json
              79 package.json
               3 renovate.json
           24786 total
    命令:cat 123.txt | wc -l

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值