Verwenden Sie find und wc -L, um Dateien mit Zeilen zu finden, die länger als 500 Zeichen sind

0

Ich habe diesen Befehl:

find . -name "*.php"  -exec wc -L '{}' \; 

Und ich glaube, es gibt mir die Anzahl der längsten Zeile für jede Datei. Aber ich suche nach einer Möglichkeit, die Anzahl und den Speicherort der Dateien nur dann auszudrucken, wenn die Länge größer als 500 ist.

Hat das schon mal jemand gemacht?

Nathan Clark
quelle

Antworten:

1

Hier ist ein grobes Skript, das macht, was Sie wollen

find . -name "*.php"  -exec wc -L '{}' \; |
  while read maxlinelength filename
  do
    if [ 500 -lt $maxlinelength ]
    then
      echo $maxlinelength $filename
    fi
  done

Die Ausgabe der find- wcKombination wird an eine while readSchleife weitergeleitet, die jede Zeile mit maximaler Länge und Dateiname in die Variablen $maxlinelengthund einfügt $filename. Das ifprüft dann, ob 500kleiner als $maxlinelengthund ob es die Werte druckt.

lesmana
quelle