Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
dateien zählen
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
xraver
Veteran
Veteran


Joined: 20 Aug 2003
Posts: 1083
Location: Halberstadt

PostPosted: Sun Aug 24, 2003 6:50 pm    Post subject: dateien zählen Reply with quote

Hallo,
ich suche nach einer Möglichkeit (script,befehl) wie man Datein in einen Verzeichnis zählen kann.

thx
Back to top
View user's profile Send private message
HeadbangingMan
Apprentice
Apprentice


Joined: 24 Mar 2003
Posts: 265
Location: Heimbach-Weis / Germany

PostPosted: Sun Aug 24, 2003 7:08 pm    Post subject: Reply with quote

Ich denke, "du" kann, was Du willst. Guckst Du

Code:
 man du


Wenn Du KDE benutzt guckst Du

Code:
 emerge kdirstat


--
Gruß Conny Ingo
Back to top
View user's profile Send private message
tl2000
n00b
n00b


Joined: 29 Jun 2003
Posts: 23

PostPosted: Sun Aug 24, 2003 7:10 pm    Post subject: Reply with quote

das geht auch:
Code:
ls -l verzeichnisname | wc -w


oder so
Code:
find . -type f -maxdepth 1 | wc -l
Back to top
View user's profile Send private message
xraver
Veteran
Veteran


Joined: 20 Aug 2003
Posts: 1083
Location: Halberstadt

PostPosted: Mon Aug 25, 2003 7:28 am    Post subject: Reply with quote

Danke, das hier funktoniert.
Code:
find . -type f -maxdepth 1 | wc -l


Kann man das noch in ein Script packen?
Es soll folgendes machen.

- wenn keine datei vorhanden ist dann gar nix ausgeben
- ansonsten die datein in verzeinis zählen und folgendes ausgeben "xx Datein vorhanden".

Für jeden Codeschnipsel wäre ich dankbar.
Back to top
View user's profile Send private message
LockeAverame
Tux's lil' helper
Tux's lil' helper


Joined: 14 Jul 2003
Posts: 108

PostPosted: Mon Aug 25, 2003 7:47 am    Post subject: Reply with quote

Code:

#!/bin/sh
let counter=0

for f in $(ls $1)
do
        let counter=$counter+1
done

if [ $counter != 0 ]
then
        echo "$counter Dateien vorhanden"
fi


mit script <verzeichnis>, zählt er dir die dateien und verzeichnisse in <verzeichnis>. es ignoriert allerdings hidden files mit . am anfang.
bei extra wünschen tune ich es noch etwas.
hope it helps
Back to top
View user's profile Send private message
xraver
Veteran
Veteran


Joined: 20 Aug 2003
Posts: 1083
Location: Halberstadt

PostPosted: Mon Aug 25, 2003 9:35 am    Post subject: Reply with quote

thx, das Script läuft super.
Ich will damit den incoming Order von mldonkey überwachen.
per cronjob wird das script ausgeführt - die ausgabe geht dann in /dev/speech ;)

Sinnvoll wäre hier vileicht noch das Ordner nicht mit gezählt werden oder man die ausgabe nach Dateityp erweitern kann. (z.b. *.mp3 -> x neue audio daten da)

Mal schauen....
Back to top
View user's profile Send private message
LockeAverame
Tux's lil' helper
Tux's lil' helper


Joined: 14 Jul 2003
Posts: 108

PostPosted: Wed Aug 27, 2003 8:36 am    Post subject: Reply with quote

einfach das $(ls $1) erweitern wie du es möchtest es bestimmt was angezeigt werden soll.
zB:
ls $1 | grep '.*.mp3'
bei einigen dingen ist es sinnvoll IFS zu setzen
ok viel spass damit
Back to top
View user's profile Send private message
xraver
Veteran
Veteran


Joined: 20 Aug 2003
Posts: 1083
Location: Halberstadt

PostPosted: Wed Aug 27, 2003 12:31 pm    Post subject: Reply with quote

Habe mir das Buch "Shell Programmierung in UNIX" geholt um mich mehr mit der Shell auseinander zu setzen. Wer gleich mal nachschlagen ;).
thx

aja....es nervt wenn immer wieder die Dateien mitgezählt werden die schon gezählt wurde. Das ich das Script alle 10min aufrufe dachte ich mir das man die dateien nach "zeitstempel" sortieren kann. Also ne Datei die älter als 10min ist wird nicht gezählt. Mal schauen.....
Back to top
View user's profile Send private message
mec
Tux's lil' helper
Tux's lil' helper


Joined: 22 Apr 2003
Posts: 147
Location: Munich

PostPosted: Wed Aug 27, 2003 7:53 pm    Post subject: Reply with quote

hi,

probier mal awk und cut aus i.v.b mit einem grep

so zb.
ls -la | grep `^d` gibt nur directory aus
dies im negative kommst du zu nicht-DIRs.

wenn die dateien doppelt gezählt werden, kannst du das gelesene ergebnis in ein file schreiben lassen. dann vorher prüfen ob eintrag schon im file steht.

cu
mec
_________________
IBM T43 Centrino 2GHz - Shuttle-X P4
-------------------------------------------
LinuxUser #321097
-------------------------------------------
Back to top
View user's profile Send private message
xraver
Veteran
Veteran


Joined: 20 Aug 2003
Posts: 1083
Location: Halberstadt

PostPosted: Thu Aug 28, 2003 8:04 am    Post subject: Reply with quote

mec wrote:

wenn die dateien doppelt gezählt werden, kannst du das gelesene ergebnis in ein file schreiben lassen. dann vorher prüfen ob eintrag schon im file steht.


Hallo,
das hatte ich mir auch schon überlegt. Aber ich würde das lieber mit dem Zeitstempel machen. Scheint mir eleganter ;).
Back to top
View user's profile Send private message
hook
Veteran
Veteran


Joined: 23 Oct 2002
Posts: 1398
Location: Ljubljana, Slovenia

PostPosted: Thu Aug 28, 2003 8:56 am    Post subject: Reply with quote

du ...nein wirchlich, Du brauchst keine script wenn Du schon eine command dafuer hast (du naemlich) ...o, scheisse, dass klingt richtig schlecht :roll:

Code:
man du

_________________
tea+free software+law=hook

(deep inside i'm still a tux's little helper)
Back to top
View user's profile Send private message
LockeAverame
Tux's lil' helper
Tux's lil' helper


Joined: 14 Jul 2003
Posts: 108

PostPosted: Thu Aug 28, 2003 9:36 am    Post subject: Reply with quote

so weit ich weiss, zählt du nur die dateigrössen zusammen nicht aber deren anzahl (was auch in der manpage steht).
imho is du da vollkommen nutzlos.
Back to top
View user's profile Send private message
xraver
Veteran
Veteran


Joined: 20 Aug 2003
Posts: 1083
Location: Halberstadt

PostPosted: Thu Aug 28, 2003 12:13 pm    Post subject: Reply with quote

Ich halte du auch nicht für besonders sinnvoll.
Ich dachte mir das das Script so arbeitet;

Code:

- zähle alle daten die neuer als 10min alt sind zusammen
- sortiere dateien nach dateityp
- gebe die Anzahl der neuen Datein aus


Das Endergebnis (welches dann an /dev/speech geht) könnte dann so aussehen:
"10 neue mp3 Dateien vorhanden"
10-20min später
"4 neue ebooks vorhanden"
Back to top
View user's profile Send private message
xraver
Veteran
Veteran


Joined: 20 Aug 2003
Posts: 1083
Location: Halberstadt

PostPosted: Thu Aug 28, 2003 12:19 pm    Post subject: Reply with quote

LockeAverame wrote:
so weit ich weiss, zählt du nur die dateigrössen zusammen nicht aber deren anzahl (was auch in der manpage steht).
imho is du da vollkommen nutzlos.


hrhr.....
Man könnte ja mit du nachsehen ob sich was im Verzeichnis getan hatt.
So nach dem Motto;

Code:

- wenn die datei/Verzeichnis eine bestimmte Grösse überschreitet dann;
- zähle sie

....womit wir wieder beim alten prob wären. Daten zählen, Dateityp und Datum bestimmen und Ausgabe machen.
Also nix mit du und RTFM ;)
Back to top
View user's profile Send private message
xraver
Veteran
Veteran


Joined: 20 Aug 2003
Posts: 1083
Location: Halberstadt

PostPosted: Thu Aug 28, 2003 3:21 pm    Post subject: Reply with quote

ok, habe mir jetzt nen kleines Script gebaut.
Da es mein erste Script ist (auch wenns nur ein par Zeilen sind) würde mich interessieren was ihr von der Lösung haltet.
Thx.

Code:

#!/bin/sh
# Variablen
# Verzeichnis von ml_donkey
MLDIR=/home/icetower/.mldonkey/incoming/

# Alter der Datein min
MLTIME=10

# Sprachausgabe ( Geraete-Datei verwenden! Ausgabe scheibt in $SPEAK )
SPEAK=/dev/speech

# Ueberpruefen ob neue Datein da sind und wert in >> $MLCOUNT
MLCOUNT=`find $MLDIR -type f -mmin -$MLTIME | wc -l`

# Check ob $MLCOUNT ungleich 0 ist und Wert an Sprachausgabe
if test $MLCOUNT != 0
then
    if test $MLCOUNT = 1
    then
        echo "$USER der Esel war da. Nur eine neue Datei vorhanden." > $SPEAK
    else
    echo "$USER der Esel war da. $MLCOUNT neue Dateien vorhanden." > $SPEAK
fi
fi
Back to top
View user's profile Send private message
mec
Tux's lil' helper
Tux's lil' helper


Joined: 22 Apr 2003
Posts: 147
Location: Munich

PostPosted: Thu Aug 28, 2003 3:22 pm    Post subject: Reply with quote

Quote:
so weit ich weiss, zählt du nur die dateigrössen zusammen nicht aber deren anzahl (was auch in der manpage steht).


der du gibt dir mit der option -c das counting aus. also das zählen der dateien, aber vorsicht es werden auch dirs und qualifier mitgezählt.

warum machst DU (nicht du) es nicht mit dem shellscript? hier nochmal etwas modifiziert....

Code:

#!/bin/sh

    # gibt nur dateien aus die mit - anfagen
files='ls -la | grep "^-"'
    # counter initialisieren   
counter=0

for i in $(file?); do
       counter=$counter+1
done

if [ $counter != 0 ]
then
        echo "$counter Dateien vorhanden"
fi

exit 0


habe es zwar nicht getestet sollte aber funzen.
damit eine datei nicht zweimal gelesen wird lege tempfile an lese es ein und frage mit dem test (man test) ab.

hoffe das war es mit deiner frage...

cu
mec
_________________
IBM T43 Centrino 2GHz - Shuttle-X P4
-------------------------------------------
LinuxUser #321097
-------------------------------------------
Back to top
View user's profile Send private message
LockeAverame
Tux's lil' helper
Tux's lil' helper


Joined: 14 Jul 2003
Posts: 108

PostPosted: Fri Aug 29, 2003 9:36 am    Post subject: Reply with quote

du hast let vergessen so wird er counter als string verarbeiten dann haste nen hübsches 0+1+1+1+1... und so da stehen
und er zählt nur im aktuellen verzeichnis nicht gerade doll.

naja bin momentan zu faul da nen script zu erstellen, dass die anforderungen erfüllt, hab noch anderes zu tun aber du könntest für jeden dateityp einen eigenen counter einführen und per find nur files mit mtime<10min zählen, das würde es tun.
Back to top
View user's profile Send private message
mec
Tux's lil' helper
Tux's lil' helper


Joined: 22 Apr 2003
Posts: 147
Location: Munich

PostPosted: Sat Aug 30, 2003 1:05 pm    Post subject: Reply with quote

dann füll hat die variable file Recrusive ab xy verzeichniss
_________________
IBM T43 Centrino 2GHz - Shuttle-X P4
-------------------------------------------
LinuxUser #321097
-------------------------------------------
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum