Як зробити так, щоб "grep" працював, як в Ubuntu?


25

Я намагався використовувати grepдля узгодження одного шаблону на терміналі, але жоден результат не виходить.

$ grep -R 'networks'
grep: warning: recursive search of stdin

Я знав, що grepв macOS базується на BSD, а grepна Ubuntu - на GNU.

Як змусити "grep" працювати на macOS, як в Ubuntu?

Відповіді:


34

Коли -Rпараметр використовується, MacOS grepвимагає від вас явно дати йому каталог для пошуку; наприклад, вкажіть .для рекурсивного пошуку поточного каталогу:

grep -R 'networks' .

9

Довгостроково, можливо, найкраще встановити інструменти на базі GNU або запустити Ubuntu практично. Обидва доступні безкоштовно.

brew install coreutils(щоб запустити brewкоманду, яку потрібно встановити homebrew з https://brew.sh ), додасть версії інструментів GNU на ваш шлях. Шукайте ggrepкоманду та, можливо, окремий grepпакет для встановлення, оскільки coreutils , як правило, змінюється з часом те, що він включає.

(EDIT: Зауважте, що станом на 2018 рік grepспеціально потрібно встановлювати окремо,coreutils ніж наступне:

$ brew install grep
$ ggrep sometext file.txt     # Note the executable is called ggrep with two G's

і має унікальне виконуване ім’я ggrepз двома G.)

Також пошук тут для GNU або coreutils буде корисним для контексту та порад / хитрощів.


2
Зауважте, що принаймні зараз grepце не включено до цього coreutilsпакету, brewа його власного пакетуgrep
fejese

2
Зауважте також, що виконуваний файл називається ggrep(ведучим g) зараз.
dotancohen

1
Спасибі @dotancohen - не соромтесь просто відредагувати відповідь, якщо ви впевнені в ситуації. Існує історія редагувань, і ми завжди можемо спілкуватися, якщо зміна для людини є незрозумілою або потребує подальшого перегляду / коригування. +1 за коментар - ще раз дякую
bmike
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.