поиск по файлам и положить в массив - PullRequest
0 голосов
/ 07 июля 2011
cat `find . -name '*.css'`

Это откроет любой файл CSS. Я теперь, что делать две вещи.

1) Как добавить к этому * .js. Поэтому я хочу заглянуть во все файлы CSS и JavaScript.

2) Я хочу найти любые файлы CSS или изображения в них (файлы CSS или JS) и поместить их в массив. Поэтому я думаю, что искать .png, .jpg, .gif, .tif, .css и поместить все до этого, пока кавычка или одинарная кавычка в массиве. Я хочу массив, потому что эта команда войдет в сценарий оболочки, и после того, как я получу все имена файлов, которые мне нужны, мне нужно будет просмотреть и скачать эти файлы позже.

Любая помощь будет оценена.

Ответы [ 3 ]

2 голосов
/ 01 декабря 2012

Дополнительные хакеры, если кому-то это нужно:

find ./ -name "*.css" | xargs grep -o -h -E '[A-Za-z0-9:./_-]+\.(png|jpg|gif|tif|css)'| sed -e 's/\.\./{{url here}}/g'|xargs wget

загрузит все недостающие ресурсы

1 голос
/ 07 июля 2011

1) простой ответ: вы можете добавить имена всех файлов .js в вашу команду cat, указав find найти больше файлов:

cat `find . -name '*.css' -or -name '*.js'`

2) текстовый поискинструмент, такой как grep, вероятно, вам нужен:

find . -name '*.css' -or -name '*.js' | xargs grep -o -h -E '[A-Za-z0-9:./_-]+\.(png|jpg|gif|tif|css)'

Примечание: мой шаблон grep не универсален и не совершенен, но это стартовый пример.Он соответствует любой строке, которая содержит буквенно-цифровые символы, двоеточие, точку, косую черту, подчеркивание или дефис, а затем любое из указанных расширений.

Опция -o заставляет grep выводить только частифайлы .css / .js, которые соответствуют шаблону (т. е. только видимые имена файлов).

Если вы хотите загрузить их, вы можете добавить | xargs wget -v к команде, которая будет инструктировать wget выбрать всеэти имена файлов. ПРИМЕЧАНИЕ : это не будет работать для относительных имен файлов;потребуется еще какое-то волшебство (то есть вам придется разрешать их в зависимости от местоположения файла grepped).Возможно, какая-то дополнительная хакерская атака, например sed или awk.

Также: как часто вы видите ссылки на TIFF в вашем CSS / JS?

1 голос
/ 07 июля 2011

Выполните команду:

find ./ -name "*.css" -or -name "*.js" > fileNames.txt

Затем прочитайте каждую строку файла fileNames.txt в цикле и загрузите их.

Или, если вы собираетесь использовать wget для загрузки изображений, которые выможет сделать:

find ./ -name "*.css" -or -name "*.js" | xargs grep '*.png' | xargs wget

Может потребоваться небольшое уточнение, например cut после grep, но вы получите идею

...