bashでgrepを使用して特定の文字で始まる行を検索する方法

bashでgrepを使用して特定の文字で始まる行を検索する方法

既存のエイリアスセットを見て、すべての内容を知らせるエイリアス( "ggg")が欲しいです。最初G.私はg *エイリアスがたくさんあります:)

私はこれを試しましたが、alias ggg='alias | grep ^g'私に何の出力(またはエラー)も与えません。私が最も確信していないのは、「行を始める」文字です。

ベストアンサー1

zshでは

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

gggまたは、それ自体が印刷されないように関数を使用してください。

ggg() alias -m 'g*'

「エイリアス」の出力をgrepすることもできますが、複数行のエイリアスがあると正しく機能しない可能性があります。

Bashの場合は、次のトリックを使用できます。

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

アイデアは、bashがalias同じエイリアスを再現するために解釈できるいくつかのテキストを出力することです。たとえば、次のようになります。

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

aliasだから私たちはそれを評価しましたが、 "g"で始まる文字列が渡されたときに間違いだけを呼び出す関数でオーバーライドした後。alias

おすすめ記事