Как использовать grep, чтобы найти все zip-файлы в каталоге?

У меня есть каталог с более чем 1000 файлами, и некоторые из них являются файлами .zip, и я хочу превратить их все в файлы .tgz.

Я хочу использовать grep для составления списка имен файлов. Я пробовал "grep * .zip" безрезультатно. Читая справочные страницы, я подумал, что это универсальный селектор. Почему это не работает?

Спасибо.

4
задан 19 January 2012 в 21:33

2 ответа

Необходимо действительно использовать find вместо этого.

find <dir> -iname \*.zip

Пример: для поиска всего .zip, файлы в текущем каталоге и всех подкаталогах пробуют это:

find . -iname \*.zip

Это перечислит все файлы, заканчивающиеся .zip относительно случая. Если Вы только хотите тех со строчным изменением -iname к -name

, команда grep ищет жала в файлах, не для файлов. Можно использовать его с find для списка весь Вашего .zip файлы как это

find . |grep -e "\.zip$"
8
ответ дан 19 January 2012 в 21:33

Grep использует регулярные выражения по умолчанию. Выражение, которое Вы хотели бы:

grep .zip$

Вы, вероятно, хотите использовать find все же.

находят. - называют '*.zip'

, Или можно передать по каналу, находят в grep

find . | grep .zip$
2
ответ дан 19 January 2012 в 21:33

Другие вопросы по тегам:

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