📅  最后修改于: 2023-12-03 15:05:12.321000             🧑  作者: Mango
在Shell脚本中,有时候需要获取文件中唯一的行。本文介绍三种方式来实现这个目标。
使用sort和uniq命令结合可以很容易地获取唯一行。sort将文件按字典序排序,uniq命令输出文件中的唯一行。
sort file.txt | uniq
使用awk命令过滤掉文件中的重复行。
awk '!seen[$0]++' file.txt
这行命令通过使用数组seen来跟踪已经出现的行,然后输出未出现的行。
使用sed命令可以删除文件中的重复行。
sed -e 's/^\s*//' -e '/^$/d' file.txt | sort | uniq
这行命令首先使用sed删除空行和空格行,然后使用sort和uniq命令获取唯一行。
以上三种方式都可以轻松地获取唯一行。选用哪种方式取决于具体情况。
注意: 以上命令都假设文件中的行是已排序的。如果文件中的行没有排序,可以添加sort命令或者使用-n选项指定数值排序。