Linux文件比较、提取总结(diff、sort、uniq、comm、grep)

  1. diff系列:diff,vimdiff
    可以用来比较文件的不同版本,不强制要求两个文件是有序文件。以第一个文件为准,逐行比较第二个文件与第一个文件的差异。vimdiff用vim打开两个文件,分两栏可视化显示两个文件异同,效果类似于diff -y
    具体用法参见diff基础、diff详解
  2. sort系列:sort,uniq,comm
    相比于diff,更适用于不同文件取交集、并集、差集的情况,使用uniq和comm必须先用sort排序。uniq可以很方便的取交集(-d)、并集(默认),comm可以通过-1、-2、-3的不同组合实现交集并集差集。不同之处在于uniq可以很方便的用在管道中,如sort a b | uniq -d > c,合并a、b后并排序,把重复出现的行输出到c。要用comm实现的话,需要先sort a、sort b,然后comm -12 a b > c
    具体用法
  3. grep直接取交集、差集,因为没有经过排序,所以速度比sort+uniq/comm差一些。-F代表文件名,-f代表文件内容,-v代表反向统计
  • 统计相同行
    grep -Ff file1 file2
  • 统计不同行
    grep -vFf file1 file2

你可能感兴趣的:(Linux)