Varnish предназначен для обслуживания файлов веб-страниц, например, html, js, css, изображения и т. д. Он перехватывает HTTP-трафик между интернет-клиентами и сервером внутренних приложений. Varnish слушает http-порт 80 и говорит по протоколу HTTP. Ни браузеры, ни серверные приложения не должны знать, что Varnish существует, если он правильно настроен, он просто работает.
Memcached - это приложение, обычно используемое для кэширования данных, передаваемых с сервера базы данных в приложение, с целью уменьшения количества запросов к БД. Кроме того, поскольку данные кэшируются в памяти, их извлечение происходит намного быстрее. Но это приложение, которое управляет вставкой и извлечением данных из Memcached, другими словами, приложение должно быть написано так, чтобы правильно использовать Memcached. Memcached не поддерживает протокол HTTP.
С GNU grep
:
find . -type f -name '*.jar' -exec sh -c '
for file do
jar tf "$file" | grep -H --label="$file" myClass
done' sh {} +
Или, например, используйте awk :
find . -type f -name '*.jar' -exec sh -c '
export FILE
for FILE do
jar tf "$FILE" | awk '\''/myClass/ {
print ENVIRON["FILE"] ": " $0}'\''
done' sh {} +
Вы также можете использовать bsdtar
(поскольку файлы jar
являются файлами zip
и bsdtar
их поддерживает) для выполнения сопоставления себя (что позволяет вам иметь более подробный вывод с метаданными файлов, не рискуя совпадением grep
с этими метаданными), хотя вам все равно нужно что-то вроде grep
, чтобы вставить имя файла :
find . -type f -name '*.jar' -exec sh -c '
for file do
bsdtar tvf "$file" "*myClass*" | grep -H --label="$file" "^"
done' sh {} +
Один из способов сделать это:
find . -type f -name '*.jar' -exec \
sh -c 'jar tf "$1" | grep -q "$2" && printf -- '%s\n' "$1"' sh {} 'RollOn' \;
С ударом:
shopt -s globstar
for file in **/*jar; do
jar tf "$file" | grep -q 'myClass' && printf '%s\n' "$file"
done
Или, чтобы напечатать имя файла и соответствующую строку:
shopt -s globstar
for file in **/*jar; do
jar tf "$file" | awk -vf="$file" '/myClass/{print f":"$0}'
done