grep Consumer에서 여러 표현식 사용

grep Consumer에서 여러 표현식 사용

나는 이러한 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"
}

관련 정보