Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Linux shell脚本在文本文件中生成唯一行的列表?_Linux_Unique_Lines - Fatal编程技术网

如何使用Linux shell脚本在文本文件中生成唯一行的列表?

如何使用Linux shell脚本在文本文件中生成唯一行的列表?,linux,unique,lines,Linux,Unique,Lines,假设我有一个包含一堆行的文件,其中有些重复: line1 line1 line1 line2 line3 line3 line3 我应该使用什么linux命令生成唯一行列表: line1 line2 line3 如果文件未排序,即重复行可能不在块中,是否会发生变化?如果您不介意对输出进行排序,请使用 sort -u 这将对重复项进行排序和删除cat以输出内容,通过管道输送到sort以对其进行排序,通过管道输送到uniq以打印出唯一值: cat test1.txt|sort|uniq 如果文

假设我有一个包含一堆行的文件,其中有些重复:

line1
line1
line1
line2
line3
line3
line3
我应该使用什么linux命令生成唯一行列表:

line1
line2
line3

如果文件未排序,即重复行可能不在块中,是否会发生变化?

如果您不介意对输出进行排序,请使用

sort -u

这将对重复项进行排序和删除

cat
以输出内容,通过管道输送到
sort
以对其进行排序,通过管道输送到
uniq
以打印出唯一值:

cat test1.txt|sort|uniq


如果文件内容已排序,则无需执行排序部分。

创建具有唯一行的新排序文件:

sort -u file >> unique_file
使用uniques行(未排序)创建新文件:


如果我们不关心订单,那么最好的解决方案实际上是:

sort -u file
如果我们还希望忽略大小写字母,我们可以使用它(因此所有字母都将转换为大写):

似乎更好的办法是使用以下命令:

uniq file
如果我们还希望忽略大小写字母(结果返回第一行副本,大小写没有任何变化):

但是,在这种情况下,返回的结果可能与使用
排序
命令时的结果完全不同,因为
uniq
命令不会检测重复行,除非它们相邻

sort -fu file
uniq file
uniq -i file