Dies bezieht sich auf eine andere Frage: Wie verwende ich Robocopy, um alle Dateien über eine bestimmte Größe rekursiv aufzulisten?
Ich möchte die Ausgabe eines Befehls analysieren (oder eine Protokolldatei katzen) und einen Zeichenfolgenwert suchen, ihn in eine Ganzzahl konvertieren und dann prüfen, ob dieser Ganzzahlwert größer als eine bestimmte Ganzzahl ist.
Zum Beispiel angesichts der Zeile:
*EXTRA File 78223 C:\_Google.Enterprise.Contract.2010-06-01.pdf
Ich möchte '78223' mit '10485760' vergleichen. Ist das mit grep oder sed möglich?
Vielen Dank!
Antworten:
Verwenden Sie
awk
wie folgt:quelle
Wenn Sie ein Unix-ähnliches Benutzerland verwenden (wie UnxUtils oder Cygwin, wenn Sie unter Windows arbeiten), können Sie
find
mit dem-size
Parameter Ihre Dateiliste direkt abrufen und dann zu xargs weiterleiten und alles tun, was Sie sind versuchen, mit den ausgewählten Dateien zu tun.Die allgemeine Antwort auf Ihre Frage (interessante Vergleiche und andere Operationen) lautet zwar awk oder bash (mit bc) oder perl - aber das spezifische Szenario bietet sich an
find
.quelle
In reinem Bash:
quelle
Perl kann ähnlich wie awk verwendet werden:
echo '*EXTRA File 78223 C:\foo.pdf' | perl -ane 'print if $F[2] > 40000'
quelle