linux 对文件中的内容去重
在 Linux 中,可以使用 sort
和 uniq
命令组合来对文件中的内容进行去重。以下是一个简单的用法示例:
sort filename.txt | uniq > unique_filename.txt
这里是命令的分解:
sort filename.txt
:这个命令将文件filename.txt
中的内容按行排序。排序步骤是必要的,因为uniq
命令只能去除相邻重复的行。uniq
:这个命令会去除连续重复的行。在通过sort
命令排序后,重复的行就变得相邻,因此uniq
能够有效去重。> unique_filename.txt
:将去重后的内容输出到unique_filename.txt
文件中。如果你想要在原文件中去重,可以把输出重定向回原文件(filename.txt
),但请小心操作,因为这会覆盖原文件的数据:
sort filename.txt | uniq > temp && mv temp filename.txt
这样可以确保你不会意外地丢失原文件的数据。
如果文件中需要保留原始顺序,但只是进行去重,你可以用下面这种方式:
awk '!seen[$0]++' filename.txt > unique_filename.txt
这个命令使用 awk
来检查每一行是否已经遇到过,并且只输出第一次出现的行。