Re: (SOLVED) Re: Alle Dateiendungen finden

2006-08-18 Diskussionsfäden Thorsten Strusch
Hi Thorsten,

Thorsten Hamester schrieb:
 Hallo Matthias Houdek und Liste,
 
 Natürlich in einer weiteren Pipe:

 ... | sort -u | unic -c  dateiendungsliste.txt
 
 Kopfstand im Aschekasten, ja klar, an den befehl hab ich nicht mehr
 gedacht.
 Dennoch hat er mir immer noch folgenden Pfad zerlegt
 /pfad/pfad/Test/kav4samba-linux-5.0.4.0/kav4samba/
 als Endung 0/kav4samba/bin
 aber die Datei /pfad/pfad//poi-bin-2.5.1-final-20040804.tar.gz
 hat er richtig zerlegt als gz
 Es hat sich zwar erledigt aber es würde mich doch interessieren wie
 sowas optimiert werden könnte.

Die bash kann dir dabei auch schon helfen, siehe:
http://www.tldp.org/LDP/abs/html/refcards.html#AEN18911
Table B-5. String Operations

In der Anwendung heißt das:
DATEI=Dateiname.tar.gz
[EMAIL PROTECTED]:/tmp$ echo ${DATEI##*.}
gz

Jetzt muß man das nur noch mit dem find Befehl verquicken.
Folgendes zeigt, dass die Dateien eingesetzt werden:

 find . -type f -exec echo '${{}##*.}' \;
${./iof.trs##*.}
${./fgwg.123##*.}
${./fdfgw.dfe##*.}

Sobald man aber die einfache Hochkommatas entfernt,
gibt es eine 'bad substitution'. Hier muß also noch
ein wenig 'escaped' werden - weiß jemand wie genau?

Grüße
Thorsten


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: (SOLVED) Re: Alle Dateiendungen finden

2006-08-18 Diskussionsfäden Thorsten Strusch
Nochmal ich :)

Thorsten Strusch schrieb:
 Hi Thorsten,
 
 Thorsten Hamester schrieb:
 Hallo Matthias Houdek und Liste,

 Natürlich in einer weiteren Pipe:

 ... | sort -u | unic -c  dateiendungsliste.txt
 Kopfstand im Aschekasten, ja klar, an den befehl hab ich nicht mehr
 gedacht.
 Dennoch hat er mir immer noch folgenden Pfad zerlegt
 /pfad/pfad/Test/kav4samba-linux-5.0.4.0/kav4samba/
 als Endung 0/kav4samba/bin
 aber die Datei /pfad/pfad//poi-bin-2.5.1-final-20040804.tar.gz
 hat er richtig zerlegt als gz
 Es hat sich zwar erledigt aber es würde mich doch interessieren wie
 sowas optimiert werden könnte.
 
 Die bash kann dir dabei auch schon helfen, siehe:
 http://www.tldp.org/LDP/abs/html/refcards.html#AEN18911
 Table B-5. String Operations
 
 In der Anwendung heißt das:
 DATEI=Dateiname.tar.gz
 [EMAIL PROTECTED]:/tmp$ echo ${DATEI##*.}
 gz
 
 Jetzt muß man das nur noch mit dem find Befehl verquicken.
 Folgendes zeigt, dass die Dateien eingesetzt werden:
 
  find . -type f -exec echo '${{}##*.}' \;
 ${./iof.trs##*.}
 ${./fgwg.123##*.}
 ${./fdfgw.dfe##*.}
 
 Sobald man aber die einfache Hochkommatas entfernt,
 gibt es eine 'bad substitution'. Hier muß also noch
 ein wenig 'escaped' werden - weiß jemand wie genau?

Über ein externes Programm funktioniert es:

find . -type f -iname *\.* -exec /tmp/hilfsprogramm {} \;

mit :
,---[ /tmp/hilfsprogramm ]
| #!/bin/sh
| echo ${1##*.}
`/

Grüße
Thorsten



-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: (SOLVED) Re: Alle Dateiendungen finden

2006-08-18 Diskussionsfäden Jörg Sommer
Hallo Matthias,

Matthias Houdek [EMAIL PROTECTED] wrote:
 Hallo Thorsten Hamester, hallo auch an alle anderen

 ... | sort -u | unic -c  dateiendungsliste.txt

Wenn sort schon alle Dupplikate eliminiert, wird uniq immer nur eines
zählen. Ich vermute, du willst sort kein -u mitgeben.

Schöne Grüße, Jörg.
-- 
Politics is for the moment, equations are forever
 -- Albert Einstein


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Alle Dateiendungen finden

2006-08-17 Diskussionsfäden Stefan Bauer

Thorsten Hamester schrieb:

Aber wie schaffe ich es das nur die letzten drei Zeichen in die Datei  
geschrieben werden?


cut -d. -f 2,

wobei hier der . als Trennzeichen zum Einsatz kommt.

--
Mit freundlichen Grüßen

Stefan Bauer

--
www.plzk.de - www.plzk.com
---


--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/


Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Alle Dateiendungen finden

2006-08-17 Diskussionsfäden Martin Wildgruber
Hallo Thorsten

Versuchs mal mit:

find /verzeichnis -type f -printf %f | awk -F . '{ print $2 }  Dateiliste.txt

kurze erklärung:
Die Menge die Du sonst bekommen hättest wird in AWK dessen Feldtrennzeichen (-F 
.) ein Puknt ist nur noch das zweite Feld ausgeben (print $2). Das setzt 
vorraus das die Dateinamen datei.endung sind.

MfG
Martin

 -Ursprüngliche Nachricht-
 Von: Thorsten Hamester [EMAIL PROTECTED]
 Gesendet: 17.08.06 09:05:48
 An: debian-user-german@lists.debian.org
 Betreff: Alle Dateiendungen finden


 Hallo Liste,
 sitze hier vor dem Problem alle Dateiendungen in meinen Dateisystem (samba  
 shares daher Windows Dateien) zu finden.
 Mit find /verzeichnis -type f -printf %f  Dateiliste.txt finde ich alle  
 Dateinamen.
 
 
 Aber wie schaffe ich es das nur die letzten drei Zeichen in die Datei  
 geschrieben werden?
 
 Danke im vorraus
 -- 
 Thorsten Hamester
 
 
 -- 
 Haeufig gestellte Fragen und Antworten (FAQ): 
 http://www.de.debian.org/debian-user-german-FAQ/
 
 Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
 mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
 

-- 

---
Mit freundlichen Grüssen
Martin Wildgruber



Re: Alle Dateiendungen finden

2006-08-17 Diskussionsfäden Christoph Conrad
Hallo Stefan,

 cut -d. -f 2,

Das gibt so Probleme bei mehreren Punkten oder gar keinen Punkten:

[EMAIL PROTECTED] echo a.b.cde | cut -d. -f 2
b
[EMAIL PROTECTED] echo abcde | cut -d. -f 2
abcde

Mithilfe von rev schnappt man sich wirklich die letzte Extension, und
mit -s unterdrückt man die Ausgabe, wenn keine Trenner existieren.

[EMAIL PROTECTED] echo a.b.cde | rev | cut -d. -f 1 -s | rev
cde
[EMAIL PROTECTED] echo abcde | rev | cut -d. -f 1 -s | rev

Freundliche Grüße,
Christoph


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



(SOLVED) Re: Alle Dateiendungen finden

2006-08-17 Diskussionsfäden Thorsten Hamester

Hallo Christoph,


Hallo Stefan,


cut -d. -f 2,


Das gibt so Probleme bei mehreren Punkten oder gar keinen Punkten:


Stimmt, das gab wirklich Probleme


Mithilfe von rev schnappt man sich wirklich die letzte Extension, und
mit -s unterdrückt man die Ausgabe, wenn keine Trenner existieren.


Danke für diesen Tip, hat super geklappt.
Mit
find /work1/ -type f -print | rev | cut -d. -f 1 -s | rev | sort -u   
Dateiliste.txt


habe ich fast alle Dateiendungen (mit ein paar Ausnahmen) gefunden.

Danke an alle die geholfen haben.


--
Thorsten Hamester


--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/


Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Alle Dateiendungen finden

2006-08-17 Diskussionsfäden Jens Schüßler
* Thorsten Hamester [EMAIL PROTECTED] wrote:
 Hallo Liste,
 sitze hier vor dem Problem alle Dateiendungen in meinen Dateisystem (samba  
 shares daher Windows Dateien) zu finden.
 Mit find /verzeichnis -type f -printf %f  Dateiliste.txt finde ich alle  
 Dateinamen.
 
 
 Aber wie schaffe ich es das nur die letzten drei Zeichen in die Datei  
 geschrieben werden?

find /verzeichnis -type f|awk -F '.' ' { print $NF}'  Dateiliste.txt

Die vorgeschlagene Lösung mit awk -f '.' {print $2} funktioniert nicht,
sobald mehr als ein Punkt im Dateinamen ist.

HTH
Jens



Re: Alle Dateiendungen finden

2006-08-17 Diskussionsfäden Ralf Schmidt
Hallo Thorsten,

Am Thu, 17 Aug 2006 09:04:59 +0200 schrieb Thorsten Hamester:

 Hallo Liste,
 sitze hier vor dem Problem alle Dateiendungen in meinen Dateisystem
 (samba shares daher Windows Dateien) zu finden.
 Mit find /verzeichnis -type f -printf %f  Dateiliste.txt finde ich
 alle Dateinamen.
 Aber wie schaffe ich es das nur die letzten drei Zeichen in die Datei  
 geschrieben werden?

find /verzeichnis -type f -name '*txt' -printf %f  Dateiliste.txt

printf und type kannst Du ggf auch weglassen.

Gruß
Ralf


-- 
Signatur ist in Urlaub



Re: (SOLVED) Re: Alle Dateiendungen finden

2006-08-17 Diskussionsfäden Matthias Houdek
Hallo Thorsten Hamester, hallo auch an alle anderen

Donnerstag, 17. August 2006 09:38 - Thorsten Hamester wrote:
 Danke für diesen Tip, hat super geklappt.
 Mit
 find /work1/ -type f -print | rev | cut -d. -f 1 -s | rev | sort -u 
 Dateiliste.txt

 habe ich fast alle Dateiendungen (mit ein paar Ausnahmen) gefunden.

Oups, welche Ausnahmen denn?
Problematisch wären hier höchstens Dateien mit Punkt im Namen aber ohne 
Typ-Endung. Wobei dann IMHO bei Windows trotzdem das als Dateityp 
angesehen wird, was nach dem letzten Punkts steht.

Vielleicht noch ein Tipp: 
Mit uniq nach dem sort -u lassen sich auch noch mehrfach auftretende 
Zeilen nur einmal anzeigen. Mit der Option -c wird noch mit angezeigt, 
wie oft die jeweilige Zeile (bzw. Dateiendung) auftritt.

-- 
Gruß
MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Re: (SOLVED) Re: Alle Dateiendungen finden

2006-08-17 Diskussionsfäden Thorsten Hamester

Hallo Matthias Houdek und Liste,


Oups, welche Ausnahmen denn?
Problematisch wären hier höchstens Dateien mit Punkt im Namen aber ohne
Typ-Endung.
Ja komische Dateinamen waren es, die er dann abgeschnitten hat und dann  
nochmal die Endung hingeschrieben hat.
Bei 30 GB an Daten waren es aber nur ein paar wenige, nicht wirklich  
schlimm also.



Vielleicht noch ein Tipp:
Mit uniq nach dem sort -u lassen sich auch noch mehrfach auftretende
Zeilen nur einmal anzeigen. Mit der Option -c wird noch mit angezeigt,
wie oft die jeweilige Zeile (bzw. Dateiendung) auftritt.


Meinst Du sort -u uniq -c?

Da hat er gemeckert sort: Fehler beim Öffnen: uniq: Datei oder Verzeichnis  
nicht gefunden


Mit freundlichen Grüssen

--
Thorsten Hamester


--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/


Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Alle Dateiendungen finden

2006-08-17 Diskussionsfäden Thorsten Hamester

Hallo Ralf Schmidt und Liste


find /verzeichnis -type f -name '*txt' -printf %f  Dateiliste.txt

printf und type kannst Du ggf auch weglassen.


Da findet er doch nur die Dateiendungen mit txt
Ich wollte aber auch .exe .doc .xls .cab finden.
:)
--
Thorsten Hamester


--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/


Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Alle Dateiendungen finden

2006-08-17 Diskussionsfäden Ralf Schmidt
Hallo Thorsten,

Am Thu, 17 Aug 2006 14:56:20 +0200 schrieb Thorsten Hamester:

 Hallo Ralf Schmidt und Liste
 
  find /verzeichnis -type f -name '*txt' -printf %f  Dateiliste.txt
 
  printf und type kannst Du ggf auch weglassen.
 
 Da findet er doch nur die Dateiendungen mit txt
 Ich wollte aber auch .exe .doc .xls .cab finden.
 :)

Ich hatte die Mail von Dir zu schnell gelesen. :-(
Du wolltest die nur Dateiendungen in einer Datei speichern.
Mein Vorschlag würde die den kompletten Dateinamen in die Datei schreiben,
daher ist er am Thema vorbei.

Gruß
Ralf

PS: '*txt' war auch nur als Beispiel anzusehen. :-)


-- 
Signatur ist in Urlaub



Re: (SOLVED) Re: Alle Dateiendungen finden

2006-08-17 Diskussionsfäden Matthias Houdek
Hallo Thorsten Hamester, hallo auch an alle anderen

Donnerstag, 17. August 2006 14:54 - Thorsten Hamester wrote:
 Hallo Matthias Houdek und Liste,

  Oups, welche Ausnahmen denn?
  Problematisch wären hier höchstens Dateien mit Punkt im Namen aber
  ohne Typ-Endung.

 Ja komische Dateinamen waren es, die er dann abgeschnitten hat und
 dann nochmal die Endung hingeschrieben hat.
 Bei 30 GB an Daten waren es aber nur ein paar wenige, nicht wirklich
 schlimm also.

  Vielleicht noch ein Tipp:
  Mit uniq nach dem sort -u lassen sich auch noch mehrfach
  auftretende Zeilen nur einmal anzeigen. Mit der Option -c wird noch
  mit angezeigt, wie oft die jeweilige Zeile (bzw. Dateiendung)
  auftritt.

 Meinst Du sort -u uniq -c?

 Da hat er gemeckert sort: Fehler beim Öffnen: uniq: Datei oder
 Verzeichnis nicht gefunden

Natürlich in einer weiteren Pipe:

... | sort -u | unic -c  dateiendungsliste.txt

Viele Befehle schreiben ihr Ergebnis in die Standardausgabe (stdout). 
Normaler Weise erscheint das dann auf dem Bildschirm. Mit dem  
Pipesymbol | wird diese Ausgabe aber an den nächsten Befehl 
weitergegeben, der dann von der Standardeingabe (stdin) lesen können 
muss (was viele Befehle automatisch machen, wenn man nichts anderes 
angibt). Mit dem  am Ende wird die Ausgabe des letzten Befehls in 
die nachfolgende Datei geschrieben, wobei ein eventueller Inhalt der 
Datei überschrieben wird. Mit  würde an eine evtl. schon 
vorhandenen Datei angehängt werden. 
(vgl. auch 'man bash', Suchbegriffe: Pipelines, Redirecting Output)

-- 
Gruß
MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Re: (SOLVED) Re: Alle Dateiendungen finden

2006-08-17 Diskussionsfäden Thorsten Hamester

Hallo Matthias Houdek und Liste,


Natürlich in einer weiteren Pipe:

... | sort -u | unic -c  dateiendungsliste.txt


Kopfstand im Aschekasten, ja klar, an den befehl hab ich nicht mehr  
gedacht.

Dennoch hat er mir immer noch folgenden Pfad zerlegt
/pfad/pfad/Test/kav4samba-linux-5.0.4.0/kav4samba/
als Endung 0/kav4samba/bin
aber die Datei /pfad/pfad//poi-bin-2.5.1-final-20040804.tar.gz
hat er richtig zerlegt als gz
Es hat sich zwar erledigt aber es würde mich doch interessieren wie sowas  
optimiert werden könnte.


Mit freundlichen Grüssen


--
Thorsten Hamester


--
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/


Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)