Schrift
[thread]9676[/thread]

Viele Dateien in eine Verz: nach einem Ausdruck durchsuchen



<< >> 5 Einträge, 1 Seite
format_c
 2004-04-20 00:39
#94480 #94480
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Hi,
Ich stehe gerade vor einem Problem.
Ich hab da ein fertiges PHP Forum.
Das ersetzt den BB-Code [code] mit dem HTML-Tag <code>.

Ich möchte jetzt diese Datei suchen in der <code> vor kommt um es in <pre> zu ändern.

Kann mir jemand ne Pipe basteln? Ich bin bereits gescheitert.
Bereits versuchte ansätzte:
ls -R | cat | grep \<code\>
grep \<code\> < /usr/bin/find .

Ich schaffe es nicht dass die Dateinamen die ausgelesen wurde geöffnet werden.

Gruß Alex
format_c
 2004-04-20 00:52
#94481 #94481
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
An die Stirn schlag.
Man bin ich blöd. Ich brauch gar keine Pipe
grep \<code\> -HR * tut genau das was ich will.

Trotzdem Danke

Gruß Alex
ptk
 2004-04-20 12:29
#94482 #94482
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ohne die Option -R von grep (das ist eine relativ neue Erweiterung, die bei aelteren Unices nicht vorhanden ist), wuerde man es so schreiben:
Code: (dl )
find . -exec grep -l Suchbegriff {} \;
format_c
 2004-04-20 13:22
#94483 #94483
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Danke erst mal.
Aber Was macht die Gescheifte Klammer hinter dem grep?

Gruß Alex
ptk
 2004-04-20 13:50
#94484 #94484
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
{} wird durch den aktuellen Dateinamen ersetzt. Man beachte auch den \ vor dem ;. Mit dem Semikolon wird fuer "find" signalisiert, dass das zu ausfuehrende Kommando zu Ende ist, aber der Backslash ist notwendig, damit nicht die Shell das Semikolon interpretiert. Eine Moeglichkeit waere auch die Bearbeitung mit xargs:
Code: (dl )
find . | xargs grep -l Suchpattern

Das ist effizienter, weil weniger Prozesse aufgerufen werden. Wenn man "gefaehrliche" Dateinamen hat (mit Leerzeichen oder Shellsonderzeichen), dann muss man
Code: (dl )
find . -print0 | xargs -0 grep -l Suchpattern

schreiben.\n\n

<!--EDIT|ptk|1082454662-->
<< >> 5 Einträge, 1 Seite



View all threads created 2004-04-20 00:39.