Выполнение grep операция в файлах tar без извлечения

Аргументы Spark conf разработаны специально для конфигурации Spark (ключи, которые вы могли бы в противном случае поместить в spark-defaults.conf).

Их нельзя использовать с общими свойствами (хотя можно использовать префикс spark с вашей пользовательской конфигурацией, если он не конфликтует с реальной конфигурацией Spark).

Если вы хотите предоставить общую конфигурацию, имеет смысл использовать Spark-независимые утилиты, специфичные для вашего языка.

29
задан Jonathan Leffler 4 September 2013 в 07:00
поделиться

3 ответа

команда tar имеет переключатель -O для извлечения ваших файлов на стандартный вывод. Таким образом, вы можете направить эти выходные данные в grep/awk

tar xvf  test.tar -O | awk '/pattern/{print}'

tar xvf  test.tar -O | grep "pattern"

, например, чтобы возвратить имя файла одним найденным шаблоном

tar tf myarchive.tar | while read -r FILE
do
    if tar xf test.tar $FILE  -O | grep "pattern" ;then
        echo "found pattern in : $FILE"
    fi
done
38
ответ дан ghostdog74 28 November 2019 в 01:03
поделиться

Самый простой способ - использовать avfs . Я использовал это раньше для таких задач.

По сути, синтаксис:

avfsd ~/.avfs # Sets up a avfs virtual filesystem
rgrep pattern ~/.avfs/path/to/file.tar#/

/path/to/file.tar - это путь к фактическому файлу tar.

Предварительное ожидание ~/.avfs/ (точка монтирования) и добавление # позволяет avfs представить файл tar в качестве каталога.

2
ответ дан Matthew Flaschen 28 November 2019 в 01:03
поделиться

Модуль tarfile Python вместе с Tarfile.extractfile () позволят вам проверить архивный файл содержимое без распаковки на диск.

2
ответ дан 28 November 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: