在Linux中,cat
命令本身并不能直接进行内容去重
- 使用
sort
和uniq
命令:
cat file.txt | sort | uniq > unique_file.txt
这个命令首先使用cat
读取文件内容,然后通过管道|
将内容传递给sort
命令进行排序。排序后,相同的行会被放在一起,接着通过管道将排序后的内容传递给uniq
命令进行去重。最后,将去重后的内容写入新文件unique_file.txt
。
- 使用
awk
命令:
cat file.txt | awk '!seen[$0]++' > unique_file.txt
这个命令使用awk
读取文件内容。!seen[$0]++
表示对于每一行内容($0
),如果它还没有出现在seen
数组中,就将其添加到数组中并输出;否则,跳过这一行。最后,将去重后的内容写入新文件unique_file.txt
。
注意:这两种方法都会改变原始文件的顺序。如果你需要保留原始文件的顺序,可以使用以下命令:
awk '!seen[$0]++' file.txt > temp_file.txt && mv temp_file.txt file.txt
这个命令会先将去重后的内容写入临时文件temp_file.txt
,然后使用mv
命令将临时文件重命名为原始文件名file.txt
。这样,原始文件的顺序就被保留了。