Re: (SOLVED) Re: Alle Dateiendungen finden
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
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
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
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
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
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
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
* 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
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
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
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
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
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
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
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)