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)



(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: (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: (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)