如何查找存储在文件数据txt中的特定文本,并且仅出现一次?

时间:2018-07-02 14:31:08

标签: linux

我想知道为什么我们在uniq -u命令中使用sort吗?

如果我仅使用uniq -u data.txt,则它将打印每一行,而不是结果所需要的唯一行。

2 个答案:

答案 0 :(得分:0)

这就是我所拥有的:

$ uniq --help
  

用法:uniq [OPTION] ... [INPUT [OUTPUT]]

     

从INPUT(或标准输入)中过滤相邻匹配行,写入OUTPUT(或标准输出)。

     

[...]

因此,您要在将内容发送到sort之前使用uniq,以便使所有匹配的行相邻。

答案 1 :(得分:0)

uniq过滤掉匹配的相邻行。

示例file.txt

Hello World
It is sunshine
Warm weather
Hello World
Hello World
Winter is coming
It is sunshine
Hello World
Java code
Java code

$ uniq -u file.txt
Hello World
It is sunshine
Warm weather
Winter is coming
It is sunshine
Hello World

所有相邻的匹配行均已删除。例如,包含Hello World

的两行

排序将匹配的行分组在一起。

$ sort file.txt
Hello World
Hello World
Hello World
Hello World
It is sunshine
It is sunshine
Java code
Java code
Warm weather
Winter is coming

通过管道排序输出将删除重复的行。

$ sort file.txt | uniq -u
Warm weather
Winter is coming