linux grep schreibt die Ausgabe in eine Datei

8
%Vor%

Hier versuche ich Daten in eine Datei zu schreiben, die nicht passiert ...

    
Rajesh 21.12.2010, 10:03
quelle

8 Antworten

10

Wie wäre es mit dem Anhängen von Ergebnissen mit >> ?

%Vor%

Ich habe gerade keine Linux-Box bei mir, also versuche ich zu improvisieren.

das xargs grep -i -n "searchstring" stört mich ein bisschen.

Vielleicht meinst du xargs -I {} grep -i "searchstring" {} oder nur xargs grep -i "searchstring" ?

Da -n als Argument von grep nur Zahlenzeilen liefert, bezweifle ich, dass du das brauchst.

Auf diese Weise wäre Ihr endgültiger Code

%Vor%     
darioo 21.12.2010 10:10
quelle
2
%Vor%

Aber Sie werden nicht wissen, aus welcher Datei es stammt. Vielleicht möchten Sie:

%Vor%

stattdessen.

    
Keith 21.12.2010 10:10
quelle
1

Ich nehme an, Sie haben Leerzeichen in den php-Dateinamen. Wenn Sie sie in der Weise, wie Sie es tun, an grep bis xargs übergeben, werden die Namen in Teile aufgeteilt und grep interpretiert diese Teile als Dateinamen, die dann nicht gefunden werden können.

Dafür gibt es eine Lösung. find hat eine -print0 -Option, die find anweist, Ergebnisse durch ein NUL-Byte zu trennen, und xargs hat eine -0 -Option, die xargs anweist, ein NUL-Byte als Trennzeichen zu erwarten. Mit diesen erhalten Sie:

%Vor%     
Peter van der Heijden 21.12.2010 10:39
quelle
1

Versuchen Sie es mit Zeilenpufferung

grep --line-buffered

[Bearbeiten]

Ich habe Ihren ursprünglichen Befehl auf meiner Box ausgeführt und es scheint gut zu funktionieren, also bin ich mir nicht mehr sicher.

    
bear24rw 22.12.2010 20:07
quelle
0

Sieht gut aus für mich. Was passiert, wenn Sie >output.txt entfernen?

    
Mikel 21.12.2010 10:09
quelle
0

Wenn Sie Bäume im Quellcode suchen, sollten Sie ack verwenden. Um zu tun, was Sie in ack tun, unabhängig davon, dass Leerzeichen in Dateinamen vorhanden sind, würden Sie tun:

%Vor%     
Andy Lester 22.12.2010 20:30
quelle
0

Ich benutze immer den folgenden Befehl. Es zeigt die Ausgabe auf einer Konsole an und erstellt auch die Datei

grep -r "zu durchsuchende Zeichenfolge". 2 & gt; & amp; 1 | t / your / path / to / datei / Dateiname.txt

    
Sam Kaz 10.12.2014 00:02
quelle
0

Überprüfen Sie den freien Speicherplatz durch

%Vor%

Es könnte nicht genug freier Speicherplatz auf Ihrer Festplatte sein.

    
Alex 18.04.2017 15:33
quelle

Tags und Links