Am Mit, 2003-06-25 um 16.12 schrieb Horst Jäger:
Hallo an alle!
Danke für die viele Hilfe. Zwei Punkte hätte ich:
1. "man find ist das was Du lesen solltest." haben einige geantwortet. Dazu muss ich ne Grundsatzerklärung loswerden:
Ich finde nichts auf der Welt so grausam wie die manpages und es ist mir bisher erst ein einziges Mal passiert, dass mir eine manpage geholfen hat. Man muss glaube ich schon ein recht hohes Niveau haben (zumindest linuxmäßig) um damit was anfangen zu können. [...] "Man" ist ein Nachschlagewerk für Profis und zum Lernen absolut nicht zu gebrauchen
2. Zu den Lösungen:
find / -iname '*.txt' -exec grep egal {} \; tut's, aber klappt nicht mit z.B. egal* . Das Problem hatte ich früher schon: man muss Anführungszeichen setzen ("egal*" ) und das klappt auch nicht - jemand hat mich auch in seiner Mail davor gewarnt.
xargs dito ...
Allgemein: ich habe bestimmt 20 Lösungsansätze von euch gemailt bekommen, aber keiner tut's mit "*".
Wie geht: sowohl Dateinamen als auch Inhalt mit * ?
Bitte schreibt mir ruhig Drohbriefe oder Obszönitäten, aber nicht: lies die manpages.
Horst
Hallo Horst, das mit den Manpages kann ich teilweise nachvollziehen. Als ich mit Unix 1985 begann, gab es nur Manpages und englische Handbücher. Bis ich mit vi umgehen konnte, hat es ca. 1 Jahr gedauert, und ich entdecke heute noch neue Funktionen. man bash ist für Anfänger die absolute Todesseite. Allerdings sind viele (kürzere) Manpages auch für Anfänger lesbar und zumindest teilweise verständlich. Man muss manchmal den Mut haben, die Seite nur teilweise zu verstehen und den Rest durch Probieren herauszufinden oder als für das momentane Problem unwichtig beiseite zu legen. Man kann nicht alles gleichzeitig verstehen, und alles über Linux weiß sowieso niemnand. Ich persönlich stehe mit "info" auf Kriegsfuß. Es mag praktisch sein für den, der vom Emacs (Editor) kommt. Zur Not finde ich die notwendigsten Infos, aber nach Möglichkeit suche ich woanders. Zu dem "*": Es gibt in Unix/Linux 2 verschiedene "Ebenen", auf denen mit sog. "Mustern" gearbeitet wird. Die eine ist die Ersetzung von Dateinamen, dabei steht der * für eine beliebige Folge von Zeichen und das ? für ein Einzelzeichen. Dies wird durch die bash und andere shells benutzt. Die andere ist die Ersetzung von Dateiinhalten oder Strings, hier steht der "." für ein Einzelzeichen. Der * wiederholt 0 bis n-mal das vorstehende Muster. Deshalb ist ".*" jedes Zeichen beliebig oft. Daneben gibt es Auswahlen von Einzelzeichen, z.B. [afx], die auch mit * verlängert werden können, Zeichenbereiche [a-x] , ..., ... und ... . Diese Ausdrücke werden von Editoren und anderen Programmen unterstützt. Hier die Übersicht zu behalten, ist zu Anfang schon schwierig, insbesondere dadurch, dass die einfache Faustregel Dateiname/Inhalt dann nicht mehr gilt, wenn der Dateiname als String weiterverarbeitet wird. Hier kann man aus Platzgründen nur auf Manpages oder zum Lernen auf Bücher verweisen. Anstelle von Drohbriefen: Lies die Manpage! ;-) Aber lies sie nicht allein, sondern nur zusätzlich zu weiteren Quellen. Vieles wird plötzlich klar(er), wenn man die Informationen übereinander legt. Gruß, Wolfgang PS: Ich habe mich oben sicher nicht streng technisch richtig ausgedrückt, aber vielleicht ist es so ein bischen verständlicher.