Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Gere Andor
- # gaim2019
- # 512/1
- # shell1 / Labor3
- #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
- #írja ki az állomány nevét, a k számot és
- #amennyiben az állománynak több, mint k sora van, az állomány első k sorát
- #amennyiben az állománynak kevesebb, mint k sora van, akkor minden sorból az első k karaktert írjuk ki
- #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)").
- #Az olvashatóság kedvéért két állományra vonatkozó kiírás közé tegyünk egy elválasztó sort:
- #pl. "---------------------------------------------"
- # Ellenőrizzük, ha a felhasználó adott meg paramétert.
- if [ $# -lt 2 ]
- then
- 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.
- echo Parancshasználat: $0 file number
- exit 1
- fi
- # For-t használunk a paraméterek beolvasására, mert nem tudjuk, hány darab van.
- j=1
- for i; do
- # A páros indexű paraméterekről ellenőrizzük, ha fájl-t adtunk-e meg.
- if [[ $((j % 2)) -eq 1 ]]
- then
- if [ ! -f $i ]
- then echo A $i nem egy file\!
- exit 1
- fi
- else
- # A páratlan indexű paraméterekről ellenőrizzük, ha számot adtunk-e meg.
- re='^[0-9]+$'
- if ! [[ $i =~ $re ]] ; then
- echo A $i nem egy szám\!
- exit 1
- fi
- fi
- j=$((j+1))
- done
- j=1
- for i; do
- # A paramétereket páronként vesszük. Ebben az esetben $i lesz a szám és a $param a file.
- if [[ $((j % 2)) -eq 0 ]]
- then
- echo ===========================================
- lines=`wc -l < $param`
- time=`date +%H:%M:%S`
- # Eldöntjük, hogy mit csinálunk, attól függően, hogy hány sor van az adott file-ban.
- if [ $lines -ge $i ]
- then
- echo Első $i sor listázása "("$time")"
- head -$i $param
- else
- echo Első $i karakter listázása minden sorból "("$time")"
- cut -c-$i $param
- fi
- echo ===========================================
- else
- param=$i
- fi
- j=$((j+1))
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement