Ich versuche alle Gläser zu finden, die spring
in seinem Namen stehen. Ich arbeite mit Windows und benutze Cygwin, um die Linux-Befehle auszuführen. Sieht mein unten stehender Befehl richtig aus?
find . -name "*.jar" -exec jar tf '{}' \| grep -H "spring" \;
Aus irgendeinem Grund wird es noch verarbeitet und das Ergebnis wird nicht auf dem Bildschirm angezeigt. Gibt es eine schnelle Möglichkeit, die JAR-Datei mit einem bestimmten Namen zu durchsuchen?
Im Folgenden finden Sie beispielsweise die gültigen JAR-Dateien, in denen Spring enthalten ist.
spring-web.jar
spring-core.jar
test-spring.jar
grep
so versuchen .find /some/dir -type f -name "*spring*.jar"
spring
jar
Dateien zu durchsuchen , in denen das Wort enthaltenspring
ist.Antworten:
Ich glaube nicht, dass der
jar
Befehl mehrere.jar
Dateien als Argumente akzeptiert, so dass ein einzigerjar
Aufruf von AFAIK, der alle.jar
Dateien adressiert , nicht in Frage kommt. Eine Möglichkeit, die Dinge zu beschleunigen, indem einfind
Exec-Aufruf für jede.jar
Datei vermieden wird, ist die folgendequelle
Der folgende Befehl sucht nach den JAR-Dateien, die Teilzeichenfolgen enthalten
spring
.Jetzt durchsucht Ihr ursprünglicher Befehl den Inhalt, was nicht der Text um ihn herum oder die Beispiele sagen.
In dieser Chat-Beschreibung erklärt Gilles, warum der obige Befehl nicht das ist, wonach Sie suchen.
Testen
Ausgabe :
Wie Sie sehen können, wird die
spring.txt
Datei nicht zurückgegeben, was meiner Meinung nach das ist, wonach Sie suchen.Um zu verstehen, was Ihr Befehl tut,
springtest
.class
Datei, indem ich denjava
Befehl für diejava
Datei ausführe.Wenn ich jetzt Ihren Befehl ausführe, wird mir die
class
Datei und nicht die gesuchte JAR-Datei zurückgegeben.quelle