Как использовать grep для поиска строк, начинающихся с определенного символа в bash

Мне нужен псевдоним («ggg»), который просмотрит мой существующий набор псевдонимов и расскажет мне все те, которые начинаются с g. У меня много g * aliases 🙂

Я попробовал это: alias ggg='alias | grep ^g' alias ggg='alias | grep ^g' но не дал мне никакого вывода (или ошибки). То, что я больше всего не уверен, – это символ «начала линии».

  • Как я могу перечислить каждый порт, обслуживающий веб-страницу
  • Создайте ссылку, но не измените канонический путь
  • Что не так с этим вызовом sed -i?
  • Как получить функцию getopts при вызове другой функции внутри файла
  • Каким образом можно фильтровать текстовый файл для удаления пустых строк?
  • Липкие записи в истории оболочки
  • Как изменить рабочий каталог для сценария оболочки
  • Cron создает vim-процесс, но не отображает vim
  • 3 Solutions collect form web for “Как использовать grep для поиска строк, начинающихся с определенного символа в bash”

    Вывод псевдонима – это строки, начинающиеся с alias . Таким образом, ваш псевдоним должен быть:

     alias ggg='alias | grep "^alias g"' 

    В zsh,

     alias ggg='alias -m "g*"' 

    Или используйте функцию, чтобы ggg не печатал себя:

     ggg() alias -m 'g*' 

    Вы также можете grep выводить «псевдоним», но он может работать неправильно, если есть несколько многострочных псевдонимов.

    С помощью bash вы можете использовать этот трюк:

     ( alias() { [[ $1 = g* ]] && builtin alias "${1%%=*}"; } eval "$(builtin alias)" ) 

    Идея заключается в том, что alias bash выводит некоторый текст, который готов интерпретировать для воспроизведения тех же псевдонимов, что-то вроде:

     $ alias alias a='foo' alias goo='gar baz alias gro=grar' 

    Поэтому мы его оцениваем, но после переопределения alias как функции, которая вызывает реальный alias только при передаче строки, начинающейся с «g».

    Это зависит от вашей оболочки, если вы используете bash @Dennis совершенно правильно, для zsh это может быть еще одна проблема, если вы включили EXTENDED_GLOB в этом случае ^ интерпретируется оболочкой, и вы должны ее процитировать, то есть:

     alias ggg='alias | grep "^g"' 
    Linux и Unix - лучшая ОС в мире.