shell文本去重

1.单个文件去重

参考:https://blog.csdn.net/bitcarmanlee/article/details/82426072

# 将重复的多行变为一行
sort file |uniq

## uniq -u 只显示不重复的行
sort file |uniq -u

2.两个文件的交集,并集


求两个文件的并集

# 求两个文件的并集,如果有重复的行只保留一行
## sort 排序
## uniq 去重,重复的行只保留一行
cat file1 file2 | sort | uniq > result

求两个文件的交集

# 求两个文件的交集,即两个文件中都有的行
## uniq -d 只显示重复的行
cat file1 file2 | sort | uniq -d > result

求两个文件的差集

# 求两个文件的差集,即只有一个文件中有的行
## uniq -u 只显示不重复的行
cat file1 file2 | sort | uniq -u > result

3.两个文件合并


上下合并

# 以追加行的方式合并,如果file1有n行,file2有m行,result为n+m行
cat file1 file2 > result

左右合并

合并后一个文件的内容在左边,一个文件命令在右边

# 左右合并
paste file1 file2 > result

4.多个文件合并去重

# 例如有4个文件
nt.deny hk.deny jp1.deny jp2.deny

# 将4文件排序,去重,然后合并为一个新文件
sort nt.deny hk.deny jp1.deny jp2.deny |uniq > hosts.deny

# 将相同后缀的文件排序,去重,然后合并为一个新文件
sort *.deny |uniq > hosts.deny

猜你喜欢

转载自blog.csdn.net/omaidb/article/details/132851740
今日推荐