Páros sorok megfordítása fájlban bash scripttel

Minek irkálok ilyen scripteket? Ez speciel egyetemi szorgalmi feladat volt, s ha már megírtam ne vesszen el szegény.

A Script:

  1. if [ ! -f $1 ];
  2. then
  3.         echo "Első paraméter hiányzik, vagy nem létezik a fájl!"
  4.         exit 1
  5. fi
  6. if [ $# -lt 2 ];
  7. then
  8.         echo "Második paraméter hiányzik"
  9.         exit 1
  10. fi
  11.  
  12. num=`wc -l $1 | cut -d" " -f1`
  13. ret=();
  14. i=0;
  15. while  [ $num -gt 0 ];
  16. do
  17.         tmp=`tail -n ${num} $1 | head -n1`
  18.         b=$((num % 2))
  19.         if [ $b -eq 0 ];
  20.         then
  21.                 ret[$i]=`echo $tmp | rev`
  22.         else
  23.                 ret[$i]=`echo $tmp`
  24.         fi
  25.         let i++
  26.         num=$((num-1))
  27. done;
  28. num=$i
  29. while [ $i -gt 0 ];
  30. do
  31.         index=$((num-i))
  32.         if [ $index -gt 0 ];
  33.         then
  34.                 echo "${ret[$index]}" >> $2
  35.         else
  36.                 echo "${ret[$index]}" > $2
  37.         fi
  38.         let i--
  39. done;

Használata:
Mentsd el "rev.sh" néven, majd futtasd terminálban:

./rev.sh ./src.txt ./dst.txt

Ahol az src.txt a fájl, amiből olvas, és a dst.txt a fájl, amibe visszaírja az eredményt. Minden második sorát az src.txt -nek megfordítja és úgy írja be a dst.txt-be az src.txt tartalmát. A két fájl neve meg is egyezhet.

Megosztás/Mentés

Új hozzászólás