
私はこれらのbash機能を持っています
filter_history(){
grep -v '^cd[^ ]|^ls[^ ]'
}
get_clean_bash_history(){
cat "$HOME/.bash_history" | filter_history
}
bashの履歴を取得しようとしていますcd
...などの退屈なコマンドをフィルタリングしls
ますが、grep式は機能しません。理由を知っている人はいますか?
答え1
grepで使用するには-Eフラグが必要なようです。これはうまくいくようです。
grep -v -E '^cd +|^ls +'
しかし、これが十分でない場合や極端な場合に失敗した場合は修正してください。
答え2
あなたは脱出する必要がありますor
:
function get_clean_bash_history(){
grep -v '^cd \|^ls ' "$HOME/.bash_history"
}