цикл for ожидает невыполнения

Использовать поиск с абсолютным путем.

find /path/ -size +20M

Будет напечатан весь путь.
Если вы не знаете рабочий каталог, используйте подстановку команд для pwd следующим образом:

find "`pwd`" -size +20M 
   #or like this:
find "$(pwd)" -size +20M

Чтобы получить рабочий каталог

В любом случае, похоже, что теперь Bash man советую использовать $ () вместо «, поэтому вам следует использовать вторую форму. Вы также, вероятно, можете напрямую обратиться к переменной $ PWD , которая содержит рабочий каталог вашего скрипта, и, вероятно, будет быстрее, если вам придется использовать в цикле.

find "$PWD" -size +20M
0
05.11.2018, 08:55
2 ответа

На рассмотрении находится grep. Когда grepзапускается без имени файла для чтения, он будет читать стандартный ввод. Если вы не предоставите никаких данных для стандартного ввода, он будет выглядеть «зависшим».

Вы также зацикливаете вывод find. Это неэлегантно (цикл не запустится, пока все пути не будут найдены с помощьюfind)и опасны (пути будут разделены на пробелы, и оболочка выполнит для них подстановку имен файлов ).

Вместо этого, если вы хотите запустить grepдля всех файлов с определенным суффиксом имени файла:

find. -type f -name '*.md' -exec grep -iF 'heaq' {} +

Я изменил -regexна стандартный -nameтест с шаблоном, который соответствует только именам файлов с суффиксом имени файла .md. Я также добавил -type f, так как имеет смысл запускать grepтолько на обычных файлах (возможно, вы захотите изменить -type fна ! -type d, чтобы запускать его в любом каталоге, отличном от -, вместо )].

grepвыполняется через -execпакетами для найденных путей. Я использую -Fс grep, так как мы сопоставляем строку, а не регулярное выражение. Вы можете добавить -w, если хотите сопоставить слово, а не любую подстроку.

Связанные:

4
28.01.2020, 02:14

вам нужно передать имя файла вgrep

так как

$ for i in $(find. -regex ".*md$"); do grep -i "heaq" $i; done

вы также можете использовать

% grep -i -n "heaq" $(find. -regex ".*md$")

-nзаставляет grep выводить совпадающие номера строк

3
28.01.2020, 02:14

Теги

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