GRY-Online.pl --> Archiwum Forum

banalny skrypt pod linuxa - pomocy!!!

21.01.2002
10:56
smile
[1]

tramer [ ]

banalny skrypt pod linuxa - pomocy!!!

muszę na jutro (najpóźniej na środę) napisać pewien skrypt linuxowy. skrypt jest naprawdę banalny, ale niestety nie mam linuxa żeby sprawdzić czy działa (a i czasu nie za bardzo, bo dodatkowo parę innych projektów i kolosów). dla kogoś kto zna linucha taki skrypt jest na 0.5 minuty... tak więc pleez pleeeez help me :-) oto treść:


skrypt ma: wyszukiwać w katalogu (i podkatalogach) "X" pliki, których właścicielem jest użytkownik "Y". składnia polecenia:

nazwa_skryptu [opcje] "X" "Y"

opcje:
-l : informacje o nazwach, prawach dostepu oraz wielkosciach plikow
-p : informacje o prawach plikow
-s : informacje o wielkosci plikow
bez opcji: informacja tylko o nazwach


jak widać banał.... ls, grep etc i to wszystko pleeeeeeeeeeeeeeeeeeeeez help!!!!!!!!!!!

21.01.2002
13:05
smile
[2]

dudek101 [ Konsul ]

jesli argumentami wejsciowymi beda $1 katalog $2 uzytkownik, $3 parametry, to mozesz zastosowac cos takiego case $3 in -l) ls -lR $1 | grep $2 -p) wieksza gimnastyka, wyswietlenie samych nazw i praw dostepu mozna zrobic sed'em albo awk, chociaz jesli chodzi tu o typy plikow (wykonywalny, link, katalog, kolejka, itp.) to uzyc nalezy opcji -p w ls'ie, czyli: -p) ls -sR $1 |grep $2 -s ls -sR $1 | grep $2 *) ls -R $1 |grep $2 esac pokombinuj :)))

21.01.2002
13:56
[3]

tramer [ ]

dzięki... w tym problem że nie mam gdzie pokombinować bo nie mam linucha... :-/ a co do -p to wystarcza informacje -xxx-x-x-x etc ;-)

21.01.2002
14:22
[4]

dudek101 [ Konsul ]

wlasnie w tym -p lezy pies pogrzebany, o ile sie nie myle to informacje o prawach dostepu do plikow (rwx) dostaniesz tylko dzieki parametrowi -l ale wtedy dostaniesz tez rozmiary, daty i informacje o wlascicielu

21.01.2002
14:26
[5]

tramer [ ]

a nie mogę wyciąć reszty informacji podając pierwszą kolumnę i spację jako separator? (mówię z pamięci, nie mam jak sprawdzić :-(

21.01.2002
14:29
[6]

dudek101 [ Konsul ]

mozesz, ale chyba grep sobie z tym nie poradzi, poczekaj zajrze do mana :)

21.01.2002
14:51
[7]

dudek101 [ Konsul ]

sam grep nie wystarczy, trzeba posilic sie awk ls -lR $1| grep $2 | awk '‹$1, $9›' nie wiem jak zrobic to samym awk z poziomu skryptu, ale powinno dzialc

21.01.2002
15:07
[8]

dudek101 [ Konsul ]

sam grep nie wystarczy, trzeba posilic sie awk ls -lR $1| grep $2 | awk '‹$1, $9›' nie wiem jak zrobic to samym awk z poziomu skryptu, ale powinno dzialc

21.01.2002
15:17
[9]

dudek101 [ Konsul ]

sorry, cos mi sie powalilo, jeszcze raz :) ls -lR $1 | grep $2 | awk '‹ print $1,$9 ›'

21.01.2002
15:19
[10]

dudek101 [ Konsul ]

FUCK, cos jest pokrzaczone z formularzami jesli bedziesz wpisywac to co podeslalem to zmnien znaczki <> otaczajace print $1,$9 na krecone nawiasy

22.01.2002
00:30
smile
[11]

tramer [ ]

no dobra... ktoś napisał mi coś takiego... :-D help cz.2 potrzebuję objaśnienia ;-)))))))) #v+ [looser.sh] #!/bin/bash ZM=9 while [ $# -gt 2 ]; do case $1 in -l | 1,5,9 ) ZM="1,5,9" ;; -p | 5 ) ZM="5" ;; -s | 1 ) ZM="1" ;; esac shift done D=`echo $1 | sed "s%\(.\)\./%\1%g;s%//*%/%g"` for i in `ls -d $D/*`; do if [ -d $i ]; then DIRS="$DIRS $i"; else FILS="$FILS $i"; fi done eval DIRS="( $DIRS )"; eval FILS="( $FILS )" ls -dl "$‹FILS[@]›" | sed "/$2/!d;"$'s/ */\t/g;s%//*%/%g;/\.$/d' | cut -f $ZM for i in "$‹DIRS[@]›"; do eval $0 $ZM $i $2 done #v-

22.01.2002
08:44
[12]

Bodziu [ Lord Ironfist ]

A dlaczego nie korzystacie z find ??? Przecież ta funkcja jest o wiele bardziej rozbudowana :-))

22.01.2002
10:22
[13]

dudek101 [ Konsul ]

wlasciwie to ja tez potrzebowalbym pomocy z czyms takim - nie dziala :))) przynajmniej u mnie bodziu -> fucktycznie find tez by sie nadal

© 2000-2024 GRY-OnLine S.A.