GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So zeigen Sie grep-Ergebnisse mit vollständigem Pfad oder Dateinamen an

Angenommen, Sie haben zwei Protokolldateien in:

  • C:/temp/my.log
  • C:/temp/alsoMy.log

cd nach C:und benutze:

grep -r somethingtosearch temp/*.log

Sie erhalten eine Liste wie:

temp/my.log:somethingtosearch
temp/alsoMy.log:somethingtosearch1
temp/alsoMy.log:somethingtosearch2

Ich bin hier reingefallen, als ich genau nach dem gleichen Problem gesucht habe und vielleicht kann es anderen helfen.

Ich denke, die wirkliche Lösung ist:

cat *.log | grep -H somethingtosearch

Wenn Sie die vollständigen Pfade sehen möchten, würde ich cd empfehlen in das oberste Verzeichnis (Ihres Laufwerks, wenn Sie Windows verwenden)

cd C:\
grep -r somethingtosearch C:\Users\Ozzesh\temp

Oder unter Linux:

cd /
grep -r somethingtosearch ~/temp

wenn Sie sich wirklich gegen die Filterung Ihres Dateinamens (*.log) wehren UND recursive wollen (Dateien sind nicht alle im selben Verzeichnis), kombinieren find und grep ist der flexibelste Weg:

cd /
find ~/temp -iname '*.log' -type f -exec grep somethingtosearch '{}' \;

Linux
  1. Wie schreibt man den Pfad eines Ordners mit Leerzeichen im Namen?

  2. Wie zeigt man den vollständigen Pfad einer Datei oder eines Verzeichnisses im Terminal an?

  3. So leeren Sie eine Protokolldatei unter Linux

  4. So ändern Sie den Pfad der auditd-Protokolldatei /var/log/audit/audit.log

  5. Wie man mit der Farbausgabe umgeht

So finden Sie eine Zeichenfolge in einer Datei unter Linux

So löschen Sie eine Datei mit diesem Namen unter Linux:-]???????q

Wie fülle ich eine Datei mit FF mit dd auf?

Wie bekomme ich eine Datei mit dem richtigen Namen, wenn ich umgeleitet werde?

Wie lösche ich eine Datei mit einem seltsamen Namen?

So grep ps-Ausgabe mit Headern