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

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

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

  • Копирование файлов на основе даты / времени из поднабора каталогов
  • Расширение «$ @» для пользовательских переменных
  • Есть ли архив старых страниц? специально для функций, доступных для grep в раннем 'ed'
  • Команда не найдена проблема в терминале Linux-Ubuntu
  • Получите необработанный ввод из командной строки (игнорируйте метасимволы оболочки)
  • Как работает `env X = '() {(a) => \' sh -c" эхо-дата "?
  • Передавать аргументы командной строки скрипту bash
  • Использование exec и tee для перенаправления журналов на stdout и файл журнала в одно и то же время
  • Подождите, пока появится окно X (исчезнет)
  • Условное приглашение для меркуриальных
  • выполнить команду в определенном диапазоне каталогов
  • Используется ли интерпретатор командной строки bash на emacs?
  • 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 - лучшая ОС в мире.