[英]How to find uncommon lines between two text files using shell script?
[英]Shell Script - How to merge two text files without repeating lines
我的情况显然很简单,但我无法以简单的方式做到这一点,我需要它,因为真实文件非常大。
所以,我有两个 txt 文件,我想生成一个包含两者内容的新文件,而不重复这些行。 像这样的东西:
文件1.txt
192.168.0.100
192.168.0.101
192.168.0.102
文件2.txt
192.168.0.100
192.168.0.101
192.168.1.200
192.168.1.201
我想合并上面的这些文件并生成另一个像这样的文件:
结果.txt
192.168.0.100
192.168.0.101
192.168.0.102
192.168.1.200
192.168.1.201
有什么简单的建议吗? 谢谢
awk
中有一个用于删除重复项的半标准习语:
awk '!a[$0]++ {print}' file1.txt file2.txt
数组a
计算每一行的出现次数,但仅在第一次添加时打印一行(即,当a[$0]
在递增之前为 0 时)。
这比对输入进行排序要快(并保留输入顺序),但需要更多的 memory。
如果更改订单不是问题:
sort -u file1.txt file2.txt > result.txt
首先,这对两个文件的行进行排序(在内存中),然后遍历它们并仅输出每个唯一行一次( -u
标志)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.