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
[02]inux与Bash教程-05-Linux常用统计命令
最新推荐文章于 2024-05-17 16:41:20 发布