Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. Верзија 1:
  2. Датотеките се споредуваат така што се гледаат и позицијата на редот (линијата) и содржината на редот (линијата) во датотеките,
  3. односно дали првиот ред од првата датотека е ист со првиот ред од втората датотека итн.
  4. Пример кај датотеките
  5. прва датотека: втора датотека:
  6. zdravo zdravo
  7. finki ispit
  8. finki
  9. разликата е 2, затоа што finki е во втор ред на првата датотека, а на втор ред во втората датотека пишува ispit и затоа што втората датотека има еден ред повеќе од првата, тој сигурно го сметаме дека е различен,
  10. бидејќи во првата датотека не ни постои таков ред (линија) затоа што е пократка, односно помалку редови (линии) има.
  11.  
  12. #!/bin/bash
  13. if [ "$#" != "2" ]
  14. then
  15. echo "USAGE : $0 file1 file2"
  16. exit 1
  17. fi
  18.  
  19. file1=$1
  20. file2=$2
  21. proverka=0
  22. if [ ! -f $file1 ]
  23. then
  24. echo "Datoteka so ime $file1 ne postoi "
  25. proverka=$(( $proverka + 1))
  26. fi
  27.  
  28. if [ ! -f $file2 ]
  29. then
  30. echo "Datoteka so ime $file2 ne postoi"
  31. proverka=$(( $proverka + 1))
  32. fi
  33.  
  34. if [ "$proverka" "!=" "0" ]
  35. then
  36. exit 0
  37. fi
  38.  
  39. dat1=`cat $file1`
  40. dat2=`cat $file2`
  41.  
  42.  
  43. if [ "$dat1" != "$dat2" ]
  44. then
  45. liniiFile1=`wc -l < $file1`
  46. liniiFile2=`wc -l < $file2`
  47. glavenBroj=
  48. razlika=
  49.  
  50. if [ $liniiFile1 -lt $liniiFile2 ]
  51. then
  52. glavenBroj=$liniiFile1
  53. razlika=$(( $liniiFile2 - $liniiFile1 ))
  54. elif [ $liniiFile2 -lt $liniiFile1 ]
  55. then
  56. glavenBroj=$liniiFile2
  57. razlika=$(( $liniiFile1 - $liniiFile2 ))
  58. else
  59. #bidejki se isti, seedno e koj e glavenBroj
  60. glavenBroj=$liniiFile2
  61. razlika=0
  62. fi
  63.  
  64. brojac=1
  65. rezultat=0
  66. while [ $brojac -le $glavenBroj ]
  67. do
  68. linija1=`head -$brojac $file1 | tail -1`
  69. linija2=`head -$brojac $file2 | tail -1`
  70.  
  71. if [ "$linija1" != "$linija2" ]
  72. then
  73. rezultat=$(( $rezultat + 1 ))
  74. fi
  75. brojac=$(( $brojac + 1 ))
  76. done
  77.  
  78. rezultat=$(( $rezultat + $razlika ))
  79. if [ $rezultat -gt 1 ]
  80. then
  81. echo "Datotekite $file1 i $file2 imaat $rezultat razlicni redovi"
  82. elif [ $rezultat -eq 1 ]
  83. then
  84. echo "Datotekite $file1 i $file2 imaat $rezultat razlicen red"
  85. fi
  86. else
  87. echo "Datotekite $file1 i $file2 se isti"
  88. rm $2
  89. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement