ls-Ausgabe ohne Ordner ?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
mjik
Beiträge: 54
Registriert: 28.08.2006 22:45:48

ls-Ausgabe ohne Ordner ?

Beitrag von mjik » 31.12.2007 03:42:19

hi,

Hab da ne kleines Problem bei einem Bash-Script:

Kann man mit ls überhaupt Ordner in der Ausgabe ausblenden?

Oder hätte jemand ein alternatives Proggi?

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 31.12.2007 10:58:38

Kann in der Manpage zu ls auch nichts finden. Aber wenn du "nur" Dateien haben möchtest und keine Verzeichnisse, kannst du dass Ganze eventuell auch mit find realisieren?

Code: Alles auswählen

find . -maxdepth 1 -type f
Sucht nach allen normalen Dateien im aktuellen Verzeichnis.
Oh, yeah!

Benutzeravatar
Onkel Hotte
Beiträge: 44
Registriert: 22.11.2005 10:00:27
Wohnort: Potsdam

Beitrag von Onkel Hotte » 31.12.2007 11:00:04

ja, kann man.

Übergebe die Ausgabe von "ls -l" in eine Pipe und schau dir mal die Man-Pages von "grep" an.
Erst wenn der letzte Programmierer eingesperrt und jede Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 31.12.2007 11:06:32

Müsste doch dann diese Option sein
-d AKTION, --directories=AKTION
Handelt es sich bei einer der Eingabedateien um ein Verzeichnis, so soll die Aktion AKTION ausgeführt werden, um es zu verarbeiten. In
der Standardeinstellung read liest grep das Verzeichnis ein, als wäre es eine gewöhnliche Datei. Ist AKTION auf skip gesetzt, so werden
Verzeichnis stillschweigend übersprungen. Steht AKTION auf recurse oder wurde der Schalter -r benutzt, so sucht grep rekursiv durch
sämtliche Dateien unterhalb jedes Verzeichnisses.
Bekomme es nur irgendwie noch nicht wirklich hin.
Oh, yeah!

fuzzy
Beiträge: 1021
Registriert: 04.10.2003 12:15:52

Beitrag von fuzzy » 31.12.2007 11:12:55

...als eine weitere "Hilfskonstruktion" eventuell:

Code: Alles auswählen

ls -F | grep -v "/$"
Gruss fuzzy

Benutzeravatar
Onkel Hotte
Beiträge: 44
Registriert: 22.11.2005 10:00:27
Wohnort: Potsdam

Beitrag von Onkel Hotte » 31.12.2007 11:27:22

ok, ich habe jetzt an sowas wie:

Code: Alles auswählen

ls -l | grep "^-r"
gedacht.

aber die Idee von fuzzy ist auch gut.
Jedenfalls ist es ohne weiteres "Proggi" möglich.
Erst wenn der letzte Programmierer eingesperrt und jede Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 31.12.2007 12:15:01

Ok, diese beiden Varianten sind gut, einfach und erfüllen den Zweck.

...hatte da wohl ein wenig zu kompliziert gedacht...
Oh, yeah!

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Beitrag von Danielx » 31.12.2007 16:18:49

fuzzy hat geschrieben:...als eine weitere "Hilfskonstruktion" eventuell:

Code: Alles auswählen

ls -F | grep -v "/$"
Bei Links wird dann aber an den Dateinamen ein "@" angehängt.
Allerdings dürfen Dateinamen (auch am Ende) ein "@" enthalten, das "@" kann also nicht einfach entfernt werden...

Gruß,
Daniel

mjik
Beiträge: 54
Registriert: 28.08.2006 22:45:48

Beitrag von mjik » 31.12.2007 16:58:14

Vielen Dank! In der Konsole aufgerufen funzt beides super.
Fix mal beides in mein Script kopiert und getestet. Ohne nochmal rumzubasteln hat aber Fuzzy das rennen gemacht.
Bei der Lösung von Onkel Hotte bekam ich in meiner Konstelation leider Fehlermeldung.

Ich hätte meine Vorstellung vielleicht etwas ausführlich schildern sollen.
hier mal ein paar Zeilen:

echo index of $(pwd) : > $(pwd)/index.hash

for i in $(ls -BF | grep -v "/$");

do
echo $(md5sum $i) >> $(pwd)/index.hash
echo file $i hashed 2> /dev/null
done


Das Script soll schlicht eine Inhaltsverzeichnis der Dateien eines Verzeichnisses erstellen und von jeder file einen hash-Wert eintragen.
Ich wollte eine Kotrolle bei Kopier-vorgänge erleichtern.
So wie es jetzt zu sehen ist, funzt es super!! Vielen Dank!!

Wünsch euch allen eine GUTEN RUTSCH !! Bis nächtes Jahr!

Antworten