我有这些 bash 函数
filter_history(){
grep -v '^cd[^ ]|^ls[^ ]'
}
get_clean_bash_history(){
cat "$HOME/.bash_history" | filter_history
}
我试图获取 bash 历史记录,但过滤掉像cd
and这样的无聊命令ls
...但是我的 grep 表达式不起作用,有人知道为什么吗?
答案1
看起来 -E 标志对于与 grep 一起使用是必要的,这似乎有效:
grep -v -E '^cd +|^ls +'
但如果这还不够或在边缘情况下失败,请纠正我
答案2
你只需要逃避or
:
function get_clean_bash_history(){
grep -v '^cd \|^ls ' "$HOME/.bash_history"
}