Вопрос по grep - PullRequest
       31

Вопрос по grep

0 голосов
/ 02 августа 2011

Из многих результатов, полученных путем поиска определенного шаблона, если я хочу использовать все результаты один за другим в своем скрипте, как я могу это сделать?много результатов.Я хочу использовать каждый сертификат .der, указанный в команде grep.Как я могу использовать один файл за другим из результата grep?

Ответы [ 3 ]

1 голос
/ 02 августа 2011

Вы действительно копируете контент или просто имена файлов?Если это имена файлов, вам лучше использовать команду find:

find /path/to/folder -name "*.der" -exec some other commands {} ";"

В общем, это должно быть быстрее.

0 голосов
/ 02 августа 2011

Вы можете использовать вывод как часть цикла for, например:

for cert in $(grep '\.der' *) ; do
    echo ${cert} # or something else
done

Конечно, если эти der вещи на самом деле являются файлами (и вы используете ls | grepчтобы получить их), вы можете напрямую использовать файлы:

for cert in *.der ; do
    echo ${cert} # or something else
done

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

0 голосов
/ 02 августа 2011

Одним из способов является использование grep -l. Это гарантирует, что вы получите каждый файл только один раз. -l используется только для печати названия каждого файла, а не совпадений.

Затем вы можете зациклить результаты:

for file in `grep ....`
do
    # work on $file
done

Также обратите внимание, что если у вас есть пробелы в именах файлов, существует множество возможных проблем. См. Циклический просмотр файлов с пробелами в именах в стеке Unix и Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...