LINUX.ORG.RU

почему не работает такая комманда?


0

0

задача такая, есть некий пакет ( директории, поддиректории ), я хочу достать оттуда все файлы по расширению, достать содержимое каждого и прогрепить по определенному слову.

Делаю так

$find -name "*.py" -printf "%p " | cat - | grep i18n

в итоге получаю результат работы комманды find. тоесть строку - список файлов. что я не так делаю?

anonymous

Ответ на: Re: почему не работает такая комманда? от anonymous

Re: почему не работает такая комманда?

Кстати *.py лучше в одинарных кавычках,тк если в данной дериктории есть филе, подходящее к этому шаблону по названию, то получится немного не то, что мы ожидали.

anonymous ()

Re: почему не работает такая комманда?

делай вот так:

find -name "*.py" -printf "%p " | xargs grep i18n

Zert ()
Ответ на: Re: почему не работает такая комманда? от anonymous

Re: почему не работает такая комманда?

man cat
  With no FILE, or when FILE is -, read standard input.

Это не значит, что со стандартного входа будут браться имена
файлов для дальнейшего вывода их (файлов) содержимого.

sdio ★★★★★ ()
Ответ на: Re: почему не работает такая комманда? от anonymous

Re: почему не работает такая комманда?

> намекните где у мя миропонимание кривое?

-printf "%p" выводит _все_ файлы в одну строку. Соответственно, если в ней есть то, что ищет grep, то вся строка и будет выведена, а если нет, то не будет выведено ничего. Делай так: "%p\n", а ещё лучше: -print

watashiwa_daredeska ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.