Intereting Posts
lm-sensor, как правильно установить / вычислить только минимальные / максимальные значения для чтения? Как контролировать создание txt-файла без использования incron? Почему machine.slice показан как использующий память, если он не содержит никаких процессов? Как остановить Gthumb от открытия, когда я подключу камеру? Узнайте, какие модули связаны с устройством USB? Нельзя отступать heredoc, чтобы соответствовать отступу вложенности Python файл не выполняется правильно через systemd уменьшение «количества зарезервированных блоков» не отображается в выводе df Как создать привязку ключей для повторного поиска конфигурации оболочки без сохранения новой команды в истории? Gnome автоматически масштабирует x2 на дисплее HiDPI (XPS 13) Переместить огромное количество файлов в строгий каталог упорядоченных каталогов "Except (IOError, OSError), e: SyntaxError: недопустимый синтаксис" при настройке файла блокировки python Выбор последних файлов и группировка по имени Shell – Найти последний файл, который соответствует заданному шаблону Может обнаруживать, но не подключаться к Wi-Fi сети Kali Raspberry Pi

Проблема с поиском и grep

Я определил следующий псевдоним в ~/.bashrc :

  alias fg='find . -name $1 | xargs grep --color $2' 

для того, чтобы написать

 fg "*.txt" " my_text " 

и найти весь файл с расширением .txt и содержать «my_text», но он не работает. Зачем?

Псевдонимы в bash не принимают параметры (как уже указывалось), поэтому, когда вам нужно что-то подобное, вы можете использовать функции bash (например, предоставленные @ l0b0).

Но то, что вы пытаетесь достичь здесь, может быть сделано лучше, используя только grep.

 grep -r --color --include="*.txt" " my_text " ./ 

BTW, fg – это встроенная команда, важная. Вы не должны использовать его как имя для псевдонимов или функций.

EDIT: в функции

 $ ffg() { rgrep --color --include="$1" "$2" ./; } $ ffg "*.txt" " my_text " 

find ./ -name "$1" -exec grep -l "$2" {} \; должен сделать трюк.

Это работает!

 function fndg() { find . -name "$1" | xargs grep -rn --color "$2" }