Псевдоним, когда не первое слово: `G = ‘| grep’`, затем` command G grep-string`

Я обнаруживаю, что печатаю | grep | grep и | less | less много, и мне было интересно, есть ли способ сделать что-то вроде:

 alias G='| grep -E' # egrep is deprecated alias L='| less' 

Так что я мог бы сделать что-то вроде:

 $ command G grepstring 

или же

 $ verbose-command L 

В настоящее время я перехожу с bash на zsh , поэтому, если возможно, обращайтесь к обоим shellм.

bash

Я не знаю, как сделать это в bash , как говорится в руководстве :

Псевдонимы позволяют заменить строку словом, если оно используется в качестве первого слова простой команды.


zsh

help alias говорит:

Если присутствует флаг -g , определите глобальный псевдоним; глобальные псевдонимы расширяются, даже если они не встречаются в командной позиции.

Итак, в less примере:

 alias -g L="| less" 

Примеры

zsh-lovers gives the following examples:

  alias -g ...='../..' alias -g ....='../../..' alias -g .....='../../../..' alias -g CA="2>&1 | cat -A" alias -g C='| wc -l' alias -g D="DISPLAY=:0.0" alias -g DN=/dev/null alias -g ED="export DISPLAY=:0.0" alias -g EG='|& egrep' alias -g EH='|& head' alias -g EL='|& less' alias -g ELS='|& less -S' alias -g ETL='|& tail -20' alias -g ET='|& tail' alias -g F=' | fmt -' alias -g G='| egrep' alias -g H='| head' alias -g HL='|& head -20' alias -g Sk="*~(*.bz2|*.gz|*.tgz|*.zip|*.z)" alias -g LL="2>&1 | less" alias -g L="| less" alias -g LS='| less -S' alias -g MM='| most' alias -g M='| more' alias -g NE="2> /dev/null" alias -g NS='| sort -n' alias -g NUL="> /dev/null 2>&1" alias -g PIPE='|' alias -g R=' > /c/aaa/tee.txt ' alias -g RNS='| sort -nr' alias -g S='| sort' alias -g TL='| tail -20' alias -g T='| tail' alias -g US='| sort -u' alias -g VM=/var/log/messages alias -g X0G='| xargs -0 egrep' alias -g X0='| xargs -0' alias -g XG='| xargs egrep' alias -g X='| xargs' расширенное  alias -g ...='../..' alias -g ....='../../..' alias -g .....='../../../..' alias -g CA="2>&1 | cat -A" alias -g C='| wc -l' alias -g D="DISPLAY=:0.0" alias -g DN=/dev/null alias -g ED="export DISPLAY=:0.0" alias -g EG='|& egrep' alias -g EH='|& head' alias -g EL='|& less' alias -g ELS='|& less -S' alias -g ETL='|& tail -20' alias -g ET='|& tail' alias -g F=' | fmt -' alias -g G='| egrep' alias -g H='| head' alias -g HL='|& head -20' alias -g Sk="*~(*.bz2|*.gz|*.tgz|*.zip|*.z)" alias -g LL="2>&1 | less" alias -g L="| less" alias -g LS='| less -S' alias -g MM='| most' alias -g M='| more' alias -g NE="2> /dev/null" alias -g NS='| sort -n' alias -g NUL="> /dev/null 2>&1" alias -g PIPE='|' alias -g R=' > /c/aaa/tee.txt ' alias -g RNS='| sort -nr' alias -g S='| sort' alias -g TL='| tail -20' alias -g T='| tail' alias -g US='| sort -u' alias -g VM=/var/log/messages alias -g X0G='| xargs -0 egrep' alias -g X0='| xargs -0' alias -g XG='| xargs egrep' alias -g X='| xargs' 

Оболочка Bourne поддерживает псевдонимы, которые раскрываются всякий раз, когда имя отображается в командной строке.

 alias -a name=value 

устанавливает такой псевдоним. Концепция восходит к идее первого клона UNIX UNOS с 1980 года. Используйте с осторожностью, так как вам нужно экранировать name если вам не нравится его расширение.

Смотрите: http://schilytools.sourceforge.net/man/man1/bosh.1.html

Интерфейс, который похож на интерфейс UNOS 1980 года, в настоящее время находится на странице 6, раздел псевдонимов на странице 7, а команда псевдонимов задокументирована на странице 36.

Bourne Shell также реализует концепцию постоянных псевдонимов от UNOS.

Поскольку псевдонимы в оболочке Bourne более мощные, чем в других shellх, рекомендуется потратить некоторое время и поиграть с этой функцией, чтобы понять, на что она способна.