Bash
如何使用 grep 在 bash 中搜尋以某個字元開頭的行
我想要一個別名 (‘ggg’),它將查看我現有的一組別名並告訴我所有以g*開頭的別名。我有很多 g 別名 :)
我試過這個:
alias ggg='alias | grep ^g'
但沒有給我任何輸出(或錯誤)。我最不確定的是“行首”字元。
alias 的輸出是以 . 開頭的行
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)" )
這個想法是 bash
alias
輸出一些準備好被解釋以重現相同別名的文本,例如:$ alias alias a='foo' alias goo='gar baz alias gro=grar'
所以我們確實評估了它,但是在重新定義為一個函式之後,它只在傳遞一個以“g”開頭的字元串時才
alias
呼叫實數。alias