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

Grep für mehrere Zeichenfolgen in Dateien und dann die Dateien in der Reihenfolge ihrer Größe auflisten?

Ich bin in einem Ordner mit vielen .txt Datei möchte ich alle Dateien finden, die sowohl stringA enthalten und stringB (nicht unbedingt in derselben Zeile), dann listen Sie diese Dateien in der Reihenfolge ihrer Größe auf (von klein nach groß)

Ich habe Folgendes versucht, aber es funktioniert nicht:

ls -lS | for f in *; do grep -q stringA $f && grep -l stringB $f; done

Hat jemand eine gute Idee?

Akzeptierte Antwort:

Sie können GNU find verwenden :

find . -maxdepth 1 -exec grep -q stringA {} ; -exec grep -q stringB {} ; 
        -printf '%10s %pn' | 
    sort -n

Linux
  1. Finden Sie Dateien und Verzeichnisse unter Linux mit dem Befehl find

  2. Grep Word in einer Datei und dann die Datei kopieren?

  3. Pipe zu mehreren Dateien in der Shell?

  4. Linux – Dateien für das aktuelle Datum in Linux abrufen?

  5. Finden Sie ein bestimmtes Wort in Dateien und listen Sie die Zeilen auf

Wie man nach mehreren Zeichenfolgen, Mustern oder Wörtern sucht

So finden Sie eine bestimmte Zeichenfolge oder ein bestimmtes Wort in Dateien und Verzeichnissen

Wie man nach mehreren Zeichenfolgen und Mustern grep

So finden und listen Sie die Dateien rekursiv nach Datum in Linux auf

Finden Sie mehrere Dateien und benennen Sie sie in Linux um

Suchen nach einer Zeichenfolge in mehreren Dateien unter Linux