Вы также можете перенаправить в цикл while
, который может выполнять несколько действий с файлом, который находится find
. Итак, вот один для поиска в jar
архивах для данного файла класса java в папке с большим дистрибутивом jar
files
find /usr/lib/eclipse/plugins -type f -name \*.jar | while read jar; do echo $jar; jar tf $jar | fgrep IObservableList ; done
ключевым моментом является то, что цикл while
содержит несколько команд, ссылающихся на переданное имя файла, разделенных точкой с запятой, и эти команды могут включать в себя каналы. Таким образом, в этом примере я отображаю имя соответствующего файла, затем перечисляю, что находится в архивной фильтрации для данного имени класса. Вывод выглядит так:
/ USR / Lib / Затмение / плагины / org.eclipse.core.contenttype.source_3.4.1.R35x_v20090826-0451.jar
/usr/lib/eclipse/plugins/org.eclipse.core.databinding.observable_1.2.0.M20090902-0800.jar
орг / затмение / ядро / привязки / наблюдаемый / список / IObservableList .class
/usr/lib/eclipse/plugins/org.eclipse.search.source_3.5.1.r351_v20090708-0800.jar
/usr/lib/eclipse/plugins/org.eclipse.jdt.apt.core.source_3.3.202.R35x_v20091130-2300.jar
/usr/lib/eclipse/plugins/org.eclipse.cvs.source_1.0.400.v201002111343.jar
/usr/lib/eclipse/plugins/org.eclipse.help.appserver_3.1.400.v20090429_1800.jar
в моей оболочке bash (xubuntu10.04 / xfce) действительно делает совпадающее имя класса жирным, поскольку fgrep
выделяет совпадающую строку; это позволяет легко сканировать список сотен jar
файлов, в которых был произведен поиск, и легко видеть любые совпадения.
на окнах вы можете сделать то же самое с:
for /R %j in (*.jar) do @echo %j & @jar tf %j | findstr IObservableList
обратите внимание, что в Windows разделителем команд является '&' not ';' и что '@' подавляет эхо команды, чтобы выдать аккуратный вывод точно так же, как вывод linux find выше; хотя findstr
не делает сопоставленную строку жирным шрифтом, поэтому вам нужно взглянуть немного ближе к выводу, чтобы увидеть имя сопоставленного класса. Оказывается, команда windows 'for' знает несколько хитростей, таких как циклический просмотр текстовых файлов ...
1025 * наслаждаться *