GREP-Befehl: Wie richtig anwenden?
Cross
- sonstiges
Hallo Forum,
die Suche nach dem Grep-Befehl brachte zwar Ergebnisse, doch die, die ich ausprobiert habe, funktionieren nicht. Warscheinlich wende ich den Befehl trotz Beschreibung falsch an. :/
Ich möchte gerne viele Dateien im aktuellen, sowie dessen Unterverzeichnisse, nach einem String durchsuchen, der - style="width:460px;" - heisst. Dazu habe ich die verschiedensten Variationen von grep versucht, von denen ich meinte, dass sie funktionieren müssten :))
Z.B.:
grep -R "style="width:460px;"" *.php
grep -R 'style="width:460px;"' *.php
grep -R "style="width:460px;"" *.php
uvam.
Wie gesagt: Ohne Erfolg.
Wäre jemand so freundlich, mir in dieser Sache zu helfen?
Gruß
Cross
Tach.
Ich möchte gerne viele Dateien im aktuellen, sowie dessen Unterverzeichnisse, nach einem String durchsuchen, der - style="width:460px;" - heisst. Dazu habe ich die verschiedensten Variationen von grep versucht, von denen ich meinte, dass sie funktionieren müssten :))
Z.B.:
grep -R "style="width:460px;"" *.php
grep -R 'style="width:460px;"' *.php
grep -R "style="width:460px;"" *.php
uvam.
Alle diese Versuche sollten Dir eine Fehlermeldung liefern, die darauf hinweist, daß grep mit dem *.php nicht viel anfangen kann. Mach die Suche also in zwei Teilen:
1. Suche alle Dateien mit der Endung .php im aktuellen Verzeichnis und dessen Unterverzeichnissen.
find . -name *.php
2. Suche in den Dateien nach Deiner Zeichenfolge.
grep -H 'style="width:460px;"'
Zusammen ergibt das
find . -name *.php -exec grep -H 'style="width:460px;"' {} \;
Hallo,
grep -R "style="width:460px;"" *.php
grep -R 'style="width:460px;"' *.php
grep -R "style="width:460px;"" *.php
Alle diese Versuche sollten Dir eine Fehlermeldung liefern, die darauf hinweist, daß grep mit dem *.php nicht viel anfangen kann.
wollt ihr mir allen Ernstes erzählen, dass grep unter Linux weniger kann als die Windows-Portierung? Unter Windows bin ich es jahrelang gewöhnt, dass ich für die zu durchsuchende(n) Datei(en) auch die Jokerzeichen '?' und "*" verwenden kann, um eine ganze Fülle von Dateien zu durchsuchen.
Zusammen ergibt das
find . -name *.php -exec grep -H 'style="width:460px;"' {} \;
Junge, ist das umständlich ...
So long,
Martin
hi!
wollt ihr mir allen Ernstes erzählen, dass grep unter Linux weniger kann
als die Windows-Portierung? Unter Windows bin ich es jahrelang gewöhnt,
dass ich für die zu durchsuchende(n) Datei(en) auch die Jokerzeichen '?'
und "*" verwenden kann, um eine ganze Fülle von Dateien zu durchsuchen.
Das liegt vielleicht daran, dass * und ? unter Unix/Linux ueblicherweise
von der Shell interpretiert und expandiert werden, und nicht von dem
aufgerufenen Programm wie unter Windows.
grep kann das allerdings trotzdem:
grep -r --include=\*.php 'style="width:460px;" *
So aehnlich muesste das dann aussehen.
bye, Frank!
hallo,
Z.B.:
grep -R "style="width:460px;"" *.php
grep -R 'style="width:460px;"' *.php
grep -R "style="width:460px;"" *.php
So wird das nix. Vermutlich steht ja "style='...'" _innerhalb_ deiner PHP-Scripts. Da kommst du mit grep nicht heran. Du mußt erst sämtliche Dateiinhalte in einen Array auslesen, den du dann durchsuchen kannst. Dazu nimmst du am besten Perl und schreibst dir eine Suchfunktion.
Grüße aus Berlin
Christoph S.
hi!
So wird das nix. Vermutlich steht ja "style='...'" _innerhalb_ deiner
PHP-Scripts. Da kommst du mit grep nicht heran. Du mußt erst sämtliche
Dateiinhalte in einen Array auslesen, den du dann durchsuchen kannst. Dazu
nimmst du am besten Perl und schreibst dir eine Suchfunktion.
Absoluter Unsinn. Das ist gerade der Sinn von grep, Dateien nach bestimmten
Texten zu durchsuchen. Ich empfehle die Lektuere der man page, wozu ein
Programm gut ist.
bye, Frank!
hallo,
Ich empfehle die Lektuere der man page, wozu ein Programm gut ist.
Grüße aus Berlin
Christoph S.
Hallo Christoph.
So wird das nix. Vermutlich steht ja "style='...'" _innerhalb_ deiner PHP-Scripts. Da kommst du mit grep nicht heran.
Ich darf man grep zitieren:
"grep searches the named input FILEs [..] for lines containing a match to the given PATTERN."
Auf gut deutsch: grep sucht _in_ den angegebenen Dateien nach Zeilen, die auf das gegeben Muster passen.
Servus,
Flo