📜  shell 获取唯一行 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:05:12.321000             🧑  作者: Mango

以Shell获取唯一行

在Shell脚本中,有时候需要获取文件中唯一的行。本文介绍三种方式来实现这个目标。

方法一:使用sort和uniq

使用sort和uniq命令结合可以很容易地获取唯一行。sort将文件按字典序排序,uniq命令输出文件中的唯一行。

sort file.txt | uniq
方法二:使用awk

使用awk命令过滤掉文件中的重复行。

awk '!seen[$0]++' file.txt

这行命令通过使用数组seen来跟踪已经出现的行,然后输出未出现的行。

方法三:使用sed

使用sed命令可以删除文件中的重复行。

sed -e 's/^\s*//' -e '/^$/d' file.txt | sort | uniq

这行命令首先使用sed删除空行和空格行,然后使用sort和uniq命令获取唯一行。

以上三种方式都可以轻松地获取唯一行。选用哪种方式取决于具体情况。

注意: 以上命令都假设文件中的行是已排序的。如果文件中的行没有排序,可以添加sort命令或者使用-n选项指定数值排序。