Ich führe häufig grep-Befehle aus, um Dinge in meinem Code zu finden, aber das Problem bei Webprojekten ist, dass es häufig komprimierte JavaScript- und CSS-Dateien gibt, die eine große Textzeile erzeugen. Wenn also eine Übereinstimmung gefunden wird, wird das gesamte Terminalfenster angezeigt mehr als 1000 Zeilen gefüllt, was es äußerst unpraktisch macht, das zu finden, wonach ich suche.
Gibt es eine Möglichkeit, Dateien zu vermeiden, die einzelne Textzeilen mit mehr als 200 Zeichen enthalten?
... | grep -v -E '.{200}'
, funktioniert ebenfalls. ZB, um alle Zeilen von * .js-Dateien unter dem aktuellen Verzeichnis mit ".name" zu finden, die nicht länger als 200 Zeichen sind:find . -name "*.js" -exec grep -H \\.name {} \; | grep -v -E '.{200}'
Option 1: Sie können Dateien ausschließen, die einem bestimmten Muster entsprechen:
Dies wird ausschließen
script.min.js
undstyle.min.css
... Anderegrep
Option enthalten--exclude-from=FILE
und--exclude-dir=DIR
Option 2: Ich bin nicht sicher, ob dies praktisch ist, aber Sie können
cut
die ersten 200 Zeichen jeder Zeile und danngrep
diese:Der erste
grep
führt eine anfängliche Übereinstimmung durch und gibt den Dateinamen und die Zeile aus, der zweite stellt sicher, dass die DateiPATTERN
nach demcut
Einfügen der Zeilen noch vorhanden ist.quelle
In dieser Situation greife ich gerne ein Muster mit einem Nachbarschaftskontext (sagen wir 30 Zeichen):
quelle