Finde Dateien mit grep und öffne sie im Editor

9

Ich möchte grep zum Durchsuchen eines Verzeichnisses verwenden und die Dateien mit Übereinstimmungen in einem Editor der Wahl öffnen. (Emacs oder Vim werden es tun.)

Ich kann die erste Übereinstimmung über vim $(\grep -l "static void main" *) öffnen, aber dadurch werden die anderen übereinstimmenden Dateien nicht geöffnet. Das \ vor grep wird benutzt, um ein unmodifiziertes grep zu verwenden, normalerweise habe ich grep eingefärbt, was nicht funktioniert, weil es zu falschen Dateinamen führt.

Mir ist bewusst, dass ich find ausprobieren kann, die Ergebnisse jeweils nach grep pipere und dann die gefundene Datei jeweils in einem neuen Editor mit Hilfe von xargs öffne.

Beste Arbeitslösung :

VERWENDUNG :
grepe static void main oder
grepv static void main .

Keine "" benötigt.

INSTALL :
Setze das in dein .bashrc .

%Vor%     
sjas 27.12.2013, 15:49
quelle

3 Antworten

5

Sie können ** im Dateimuster verwenden, um rekursiv zu suchen. Um beispielsweise nach allen Zeilen zu suchen, die dostuff() in allen .c -Dateien im übergeordneten Verzeichnis und allen Unterverzeichnissen enthalten, verwenden Sie:

%Vor%

Lesen Sie mehr @ Ссылка

Versuchen Sie

für einen Editor unabhängigen Weg %Vor%     
Fredrik Pihl 27.12.2013, 16:01
quelle
4

Bei Emacs würden Sie normalerweise die Suche / grep in Emacs durchführen.

z.B. benutze M-x rgrep

Die Ergebnisse werden dann von Emacs verarbeitet und Sie können leicht zu jedem Ergebnis springen.

    
phils 28.12.2013 00:42
quelle
0

Zunächst geben Sie den Suchpfad nach dem Muster nicht an.
Für die einfachste Methode:

%Vor%

Für den klügeren (öffnet Vim nicht, wenn keine Ergebnisse vorliegen):

%Vor%     
krystah 27.12.2013 15:58
quelle

Tags und Links