私はタイピングをたくさん| grep
しています| less
が、似たようなことをする方法があるかどうか疑問に思います。
alias G='| grep -E' # egrep is deprecated
alias L='| less'
だから私は次のようにすることができます:
$ command G grepstring
または
$ verbose-command L
現在で切り替え中ですので、bash
可能であればzsh
両方のシェルで問題を解決してください。
答え1
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'
答え2
Bourne Shellは、コマンドラインに名前が表示されるたびに拡張されるエイリアスをサポートしています。
alias -a name=value
このようなエイリアスを設定します。この概念は、1980年に最初のUNIXクローンであるUNOSのアイデアとしてさかのぼります。name
拡張されることが気に入らない場合は脱出する必要がありますので注意して使用してください。
望むより:http://schilytools.sourceforge.net/man/man1/bosh.1.html
1980 UNOSインターフェイスに似たインターフェイスは現在6ページにあり、エイリアスセクションは7ページにあり、エイリアスコマンドは36ページに記載されています。
Bourne ShellはUNOSに永続的なエイリアスの概念も実装しています。
Bourne Shellのエイリアスは他のShellのエイリアスよりも強力なので、この機能を理解するには時間をかけてこの機能を理解することをお勧めします。