Сравнение двух файлов с while .sh - PullRequest
0 голосов
/ 26 июня 2018

Сценарий, написанный на 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";любое другое равное число не совпадает.elif и else ведут себя как положено.

1 Ответ

0 голосов
/ 26 июня 2018

Это то, что вам нужно, имя вашей переменной 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
...