比较两个文件中,一个文件比另一个文件多的行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较两个文件中,一个文件比另一个文件多的行相关的知识,希望对你有一定的参考价值。

1. 该脚本用来比较两个文件中,其中一个文件比另一个文件多的行,常用来工作环境中,对比得出多余的ip地址

#!/bin/bash
#different in file1 and file2
#author:vaedit
#date2017/8/20
#read -p "请输入第一个文件路径" file1
#read -p "请输入第二个文件路径" file2
function print_help(){
    echo "该脚本只用来对比一个文件比另一个文件多出的行的内容"
    echo "useage -f file1 file2"
}
function grepfile(){
    if [ -f $file1 -a -f $file2 ]
        then
    FILE1_LENTH=`wc -l $file1 | awk {print $1}`
    FILE2_LENTH=`wc -l $file2 | awk {print $1}`
            if [ "$FILE1_LENTH" -gt "$FILE2_LENTH" ]
              then
                   echo "$file1 中有,$file2 中没有的行如下"
                    echo -e "\e[32;40;1m===========================================\e[0m"
                    echo  "==========================================="
                    grep -vwf "$file2" "$file1"
                    echo  "==========================================="
                    echo -e "\e[32;40;1m===========================================\e[0m"
              else
                   echo "$file2 中有,$file1 中没有的行如下"
                    echo -e "\e[32;40;1m===========================================\e[0m"
                    echo "==========================================="
                   grep -vwf "$file1" "$file2"
                    echo "==========================================="
                    echo -e "\e[32;40;1m===========================================\e[0m"
            fi
    else
        echo "请输入正确的文件路径"
        exit 1
    fi
}
while test -n "$1";do
    case "$1" in 
         -h| --help)
          print_help
          exit
          ;;
         -f| --file)
          file1="$2"
          file2="$3"
          grepfile
          shift 3
          ;;
         *)
          echo "==========================================="
          print_help
          exit
esac
done

 

以上是关于比较两个文件中,一个文件比另一个文件多的行的主要内容,如果未能解决你的问题,请参考以下文章

Linux文件比较命令的Comm命令

比较两个文本文件的最快方法是啥,而不是将移动的行计算为不同的

使用sunOS中的find命令比较两个目录中的所有文件

vimdiff对比两个文件如何把不一样的同步到另一个文件呢?

第二十二章 Linux文件比较,文本文件的交集差集与求差:comm命令

通过两个文本文件中的特定模式获取差异文件