2014-08-27 3 views
-1

После переезда с ubuntu на mac одна из команд, с которыми мне не удалось жить, - это rgrep. Я знаю, что можно использовать grep -r 'term' *, но есть ли псевдоним (или, скорее, функция), который может выполнить это без флага и *?Есть ли псевдоним rgrep для mac

+0

https://www.google.com/search?q=alias+rgrep – tripleee

+0

Просто добавьте функцию в файл '.bashrc'. – Barmar

+2

'rgrep() {grep -r" $ 1 "*; } ' –

ответ

3

Как насчет?

function rgrep { 
    first=$1 
    shift 
    grep --color -I -r "$first" * "[email protected]"; 
} 
+0

Возможно, следует учитывать локальный first = $ 1', чтобы избежать утечки переменной в глобальную область (при стоимости совместимости - ключевое слово 'local' не входит в спецификацию POSIX, хотя большинство минимальных оболочек такого пепла реализует это так или иначе) , и/или используя 'rgrep() {' без ключевого слова 'function' для улучшения совместимости (' function' поддерживается меньшим количеством оболочек, которые 'local'). –

0

Поместите это в ~/.bashrc:

alias rgrep='grep -r' 

Затем начать новую оболочку, чтобы увидеть псевдоним работать.

+1

Это не включает аргумент '*' в соответствии с запросом – chepner

+0

@chepner Thx для подсказки. Но я не понимаю, чего здесь не хватает. Наличие этого псевдонима в системах RedHat и 'rgrep' работает как на Debian для меня ... – hek2mgl

+0

С этим' rgrep 'term'' будет блокироваться, ожидая чтения со стандартного ввода. Пользователи хотят, чтобы '*' (как список файлов/каталогов для рекурсии) как часть 'rgrep', но с этим вам нужно было бы ввести' rgrep 'term' * '. – chepner

Смежные вопросы