Есть ли какая-нибудь утилита Unix, которая позволит мне создавать несколько файлов с небольшим набором текста?

StackOverflow https://stackoverflow.com/questions/1028107

  •  06-07-2019
  •  | 
  •  

Вопрос

Прямо сейчас я делаю это много:

find * | grep py$ | xargs grep foo

Я помню, что есть какая-то утилита, которая делает это с меньшим набором текста, но какая?

ОБНОВЛЕНИЕ: я предпочитаю использовать оболочку Bash, если это возможно.

Это было полезно?

Решение

Мне нравится ack :

Что бы вы предпочли напечатать?

$ grep pattern $ (find. -type f | grep -v '\ .svn')

$ ack pattern

Другие советы

Возможно, вам поможет ваша оболочка. Например, в zsh вы можете сделать

grep foo **/*.py

при условии, что количество файлов .py не превышает максимально допустимое количество аргументов для команды (64 КБ?). Обратите внимание, что вы можете определить глобализацию файла, например.

grep foo **/*.py(mh-5)

, который даст вам все, что изменилось за последние 5 часов.

Вы пробовали ack .

У zsh есть рекурсивное сглаживание, так что вы можете сделать

grep foo **/*.py

Смотри, ма, не найди:)

ОБНОВЛЕНИЕ: О, также, если вы делаете что-то много, это, конечно, не мешает псевдониму или написанию для него функции

Это называется grep * wink *: -)

Все py в текущем каталоге

grep -R foo *.py

Все файлы в текущем и любом подкаталоге

grep -R foo .
find . -name "*.py" -exec grep -H foo '{}' ';'
grep -r --include='*.py' foo *

Я часто использую что-то очень похожее на вашу пару find / grep, хотя и с еще большим количеством условий - исключая, например, файлы в каталогах .svn. Я делаю это так много, что только что создал сценарии вокруг этих вызовов, так что я могу вызвать " src-grep ... " и сделать это в основном то, что вы делаете здесь. (Затем я добавил необязательное расширение для ряда строк контекста для передачи в флаг grep -C, если он есть, и отдельную версию, чтобы получить результаты для операторов определения.)

Это более полезно и быстрее, чем рекурсивный grep для меня.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top