知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

找出A文件和B文件中相同的行和不同的行

发布时间:2012-08-11 11:03:45作者:知识屋

有文本文件A和B,均由文本行组成,文件A与B文件有相同的行,也有不同的行,首先整理,然后找到需要的结果。

0. 文件整理

# sort A | uniq > a; rm A; mv a A

# sort B | uniq > b; rm B; mv b B

解释:将A中按行排序,然后去掉相同行,并写入a,然后删掉A文件,将a重新命名为A

1. 找出文件A和文件B的公有行

# cat A B  | sort | uniq -d > C

解释:将AB文件合并,并重新排序,然后去掉只出现一次的行(只存在任一文件中),剩下的(出现两次的,即文件AB中均存在的)并写入文件C

2. 找出文件A中有,而文件B没有的行

# cat A C | sort | uniq -u > D

解释:将AC文件合并,并重新排序,然后取出只出现一次的行(只存在文件A中),并写入文件D

3. 找出文件B中有,而文件A没有的行

# cat B C | sort | uniq -u > E

解释:将AC文件合并,并重新排序,然后取出只出现一次的行(只存在文件A中),并写入文件E

4. 合并文件A和文件B,并删除重复的行

# cat A B  | sort | uniq  > F

解释:将AB文件合并,并重新排序,然后去掉重复的行,最后写入文件F

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜