两个文件与while .sh的比较

时间:2018-06-26 07:15:59

标签: linux file scripting comparison multiple-columns

sh编写的脚本用于比较两个不同文件的列并给出输出。

文件1的内容

9999
0
2
3

文件2的内容

SDC 4
abc 0
abx 2
cdf 3

脚本逻辑

 while read Colm_1_File1 <&3 && Colm_1_File2 Colm_2_File2 <&4

     do

     Check_Count_File1=$Colm_1_File1

     v_File_Name=$Colm_1_File2

     Check_Count_File2=$Colm_1_File2

     if [ "$Check_Count_File1" -eq "$Check_Count_File2" ]

      then

      echo "$v_File_Name:- OK" 
      elif [ "$Colm_1_File1" -eq "9999" ]

      then

      echo "$v_File_Name File Missing"

      else

      echo "$v_File_Name:- NOK" 

     fi

     done 3<File1 4<File2 

if条件只能从“ 0”开始;其他任何相等的数字都不匹配。 elifelse的行为符合预期。

1 个答案:

答案 0 :(得分:1)

这就是您所需要的,您的变量名Colm_1_File2被写入了两次,因此出现了问题

while read Colm_1_File1 <&3 && read Colm_1_File2 Colm_2_File2 <&4
 do
 Check_Count_File1=$Colm_1_File1
 v_File_Name=$Colm_1_File2
 Check_Count_File2=$Colm_2_File2
 if [ "$Check_Count_File1" -eq "$Check_Count_File2" ]
  then
  echo "$v_File_Name:- OK"
  elif [ "$Colm_1_File1" -eq "9999" ]
  then
  echo "$v_File_Name File Missing"
  else
  echo "$v_File_Name:- NOK"
 fi
 done 3<File1 4<File2