Grep-Dateien für Inhalt

Grep-Dateien für Inhalt

Ich verwende die Cygwin-Befehle „find“ und „grep“, um Dateien anhand eines Musters zu finden. Ich mache Folgendes:

find . -iname '*.zip' -print -exec unzip -l {} \; 2> error.txt |grep -i vbs 

Es funktioniert einwandfrei und ich habe einen Dateinamen mit „vbs“ im Dateinamen. ABER jetzt muss ich etwas Ähnliches tun, aber ich muss den Dateinamen basierend auf dem Inhalt finden, z. B. ist „vbs“ nicht Teil des Dateinamens, sondern Teil des Dateiinhalts. Wie könnte das geändert werden? Vielleicht so etwas wie:

find . -iname '*.zip' -print -exec unzip -l {} \; 2> error.txt | xargs ??? Kann mir jemand einen Rat geben? Danke

Antwort1

Da Sie den Dateiinhalt greppen werden, -lreicht es nicht aus, die ZIP-Datei aufzulisten. Sie müssen sie tatsächlich entpacken. Also:

temp=`mktemp -d`    
find . -iname '*.zip' -print -exec unzip -d $temp {} \; 2> error.txt
grep -ir vbs $temp   

verwandte Informationen