Strona 1 z 1

Bash - jak wyłuskać element linijki ls -l

: 27 kwietnia 2008, 21:34
autor: dyschemist
w moim skrypcie potrzebuje rozmiar danego pliku ...
wiem że wywołując
ls -l
-rw-r--r-- 1 dyschemist dyschemist 579 2008-04-27 21:27 /home/dyschemist/Pulpit/pliki/folder/plik
jak teraz wyłuskać ten rozmiar by dodawac do w kolejnych plikach??
for plik2 in `find "$1/"$plik -type f`
do
echo `ls -l $plik2`
done
chciałbym by ta petla jakoś sensownie dodawała te rozmiary..

aha ... rozwiązanie ls -s mnie nie interesuje bo mam wrażenie że jest dość nie dokłądne

ls -l wywołuje na pojedyńczym już pliku wiec linijka jest tylko 1

: 27 kwietnia 2008, 21:39
autor: ruun

Kod: Zaznacz cały

ls -l | awk '{print $5}'

: 27 kwietnia 2008, 21:49
autor: dyschemist
okey fajnie ... ale jak to zrobić by to sie dało sumować w tej pętelce

: 27 kwietnia 2008, 22:16
autor: salmon

Kod: Zaznacz cały

suma=0
for plik2 in `find "$1/"$plik -type f`
do
let suma+=`ls -l $plik2 | awk '{print $5}'`
done
echo $suma

: 27 kwietnia 2008, 22:54
autor: dyschemist
ok podziałało , wielkie dzięki... ale zaraz pojawił sie kolejny problem ... próbuje analogicznie wybrać właściciela pliku i dostaje bład:
i od razu jeśli by można zapytać się jak zapisać taki 4 elementowy string do tablicy
let owner=`ls -l $plik | awk 'print $3}'`
tab[$i]=$suma $owner "-" $plik

: 27 kwietnia 2008, 23:10
autor: salmon
dyschemist pisze:let owner=`ls -l $plik | awk 'print $3}'`
Doszliśmy do momentu, w którym można by wpisać w konsoli man bash i poszukać tam do czego służy słowo let... :p w tym wypadku go nie potrzebujesz.
dyschemist pisze:tab[$i]=$suma $owner "-" $plik
W tym momencie wartałoby przeczytać jakiś kurs programowania basha. Najpierw jakiś prosty: http://dief.republika.pl/ , a nieco później jakiś trudniejszy: http://tldp.org/LDP/abs/html/

W między czasie dowiemy się że wystarczy wpisać:

Kod: Zaznacz cały

tab[$i]="$suma $owner - $plik" 

: 27 kwietnia 2008, 23:30
autor: dyschemist
dzięki ... znowu mnei ratujesz ... zaczynam przysypiać stąd spadek formy :)