Update uniq.md

更新文档内容
This commit is contained in:
ZhuangZhu-74 2020-03-16 17:14:14 +08:00 committed by GitHub
parent 6a54c2748a
commit e7a681b709
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 41 additions and 21 deletions

View File

@ -1,37 +1,51 @@
uniq uniq
=== ===
报告或忽略文件中的重复行 显示或忽略重复的行。
## 补充说明 ## 概要
**uniq命令** 用于报告或忽略文件中的重复行一般与sort命令结合使用。
### 语法
```shell ```shell
uniq(选项)(参数) uniq [OPTION]... [INPUT [OUTPUT]]
``` ```
### 选项 ## 主要用途
- 将输入文件(或标准输入)中邻近的重复行写入到输出文件(或标准输出)中。
- 当没有选项时,邻近的重复行将合并为一个。
## 选项
```shell ```shell
-c或——count在每列旁边显示该行重复出现的次数 -c, --count 在每行开头增加重复次数。
-d或--repeated仅显示重复出现的行列 -d, --repeated 所有邻近的重复行只被打印一次。
-f<栏位>或--skip-fields=<栏位>:忽略比较指定的栏位; -D 所有邻近的重复行将全部打印。
-s<字符位置>或--skip-chars=<字符位置>:忽略比较指定的字符; --all-repeated[=METHOD] 类似于 -D但允许每组之间以空行分割。METHOD取值范围{none(默认)prependseparate}。
-u或——unique仅显示出一次的行列 -f, --skip-fields=N 跳过对前N个列的比较。
-w<字符位置>或--check-chars=<字符位置>:指定要比较的字符。 --group[=METHOD] 显示所有行允许每组之间以空行分割。METHOD取值范围{separate(默认)prependappendboth}。
-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仅作了相邻行的去重。
```shell ```shell
uniq file.txt uniq file.txt
@ -39,7 +53,7 @@ sort file.txt | uniq
sort -u file.txt sort -u file.txt
``` ```
只显示单一行: 只显示单一行,区别在于是否执行排序
```shell ```shell
uniq -u file.txt uniq -u file.txt
@ -59,4 +73,10 @@ sort file.txt | uniq -d
``` ```
### 注意
1. `uniq`只检测邻近的行是否重复,`sort -u`将输入文件先排序然后再处理重复行。
2. 该命令是`GNU coreutils`包中的命令,相关的帮助信息请查看`man -s 1 uniq``info coreutils 'uniq invocation'`。
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ --> <!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->