2017-02-14 14 views
1

Я пытаюсь получить только имена файлов в zip-папке, где эти файлы содержат определенную строку (строка внутри файла, а не часть имени файла). Я пробовал следующую команду:grep имена файлов, содержащие строку в zip-папке

unzip -l results.zip | zipgrep -lir "Token" * 

, но не получил никаких результатов. Он просто запускает новую командную строку. Это правильный способ просто получить имена файлов, которые содержат строку Token?

ответ

1

Вам не нужно звонить unzip если вы используете zipgrep. Просто используйте zipgrep непосредственно на zip файл, как это:

zipgrep -li "Token" results.zip 

Обратите внимание, что нет необходимости использовать (рекурсивный) вариант -r здесь.

0

zipgrep -l "Token" results.zip делает работу возвращает results/filexxx.txt если fielxxx.txt содержит Token

Если вы просто хотите, чтобы получить имя файла без папки results:

zipgrep "Token" results.zip | awk -F: '{print $1}' | awk -F'/' '{print $2}' 
+1

Мне действительно нужны файлы, в которых есть слово «токен» внутри файла, а не часть имени файла. – Nasser

+0

@Nasser Я неправильно понял вопрос, см. Мое обновление – haifzhan

 Смежные вопросы

  • Нет связанных вопросов^_^