Advertisement
GerexD

linux

Mar 28th, 2022
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. # Gere Andor
  2. # gaim2019
  3. # 512/1
  4. # shell1 / Labor3
  5.  
  6. #10. Írjon shell script-et, amely paraméterként egy állománynévből és egy k számból álló párokat kap. Minden ilyen párra
  7. #írja ki az állomány nevét, a k számot és
  8. #amennyiben az állománynak több, mint k sora van, az állomány első k sorát
  9. #amennyiben az állománynak kevesebb, mint k sora van, akkor minden sorból az első k karaktert írjuk ki
  10. #Minden állomány listázása esetén írjuk ki előbb, hogy mit csinálunk, és a rendszeridőt is ("első <k> sor listázása (<óra:perc:mp>)" vagy "soronként az első <k> karakter listázása (óra:perc:mp)").
  11. #Az olvashatóság kedvéért két állományra vonatkozó kiírás közé tegyünk egy elválasztó sort:
  12. #pl. "---------------------------------------------"
  13.  
  14. # Ellenőrizzük, ha a felhasználó adott meg paramétert.
  15. if [ $# -lt 2 ]
  16. then
  17. echo A parancs különböző információkat jelenit meg a megadott file-ról a megadott szám függvényében.
  18. echo Parancshasználat: $0 file number
  19. exit 1
  20. fi
  21.  
  22. # For-t használunk a paraméterek beolvasására, mert nem tudjuk, hány darab van.
  23. j=1
  24. for i; do
  25. # A páros indexű paraméterekről ellenőrizzük, ha fájl-t adtunk-e meg.
  26. if [[ $((j % 2)) -eq 1 ]]
  27. then
  28. if [ ! -f $i ]
  29. then echo A $i nem egy file\!
  30. exit 1
  31. fi
  32. else
  33. # A páratlan indexű paraméterekről ellenőrizzük, ha számot adtunk-e meg.
  34. re='^[0-9]+$'
  35. if ! [[ $i =~ $re ]] ; then
  36. echo A $i nem egy szám\!
  37. exit 1
  38. fi
  39. fi
  40. j=$((j+1))
  41.  
  42. done
  43.  
  44. j=1
  45. for i; do
  46. # A paramétereket páronként vesszük. Ebben az esetben $i lesz a szám és a $param a file.
  47. if [[ $((j % 2)) -eq 0 ]]
  48. then
  49. echo ===========================================
  50. lines=`wc -l < $param`
  51. time=`date +%H:%M:%S`
  52. # Eldöntjük, hogy mit csinálunk, attól függően, hogy hány sor van az adott file-ban.
  53. if [ $lines -ge $i ]
  54. then
  55. echo Első $i sor listázása "("$time")"
  56. head -$i $param
  57. else
  58. echo Első $i karakter listázása minden sorból "("$time")"
  59. cut -c-$i $param
  60. fi
  61. echo ===========================================
  62.  
  63. else
  64. param=$i
  65. fi
  66. j=$((j+1))
  67. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement