![grep - grep 패턴의 괄호가 ps 결과에서 grep 절차를 제거하는 이유는 무엇입니까?](https://linux55.com/image/48420/grep%20-%20grep%20%ED%8C%A8%ED%84%B4%EC%9D%98%20%EA%B4%84%ED%98%B8%EA%B0%80%20ps%20%EA%B2%B0%EA%B3%BC%EC%97%90%EC%84%9C%20grep%20%EC%A0%88%EC%B0%A8%EB%A5%BC%20%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
grep
패턴의 괄호가 결과에서 grep 절차를 제거하는 이유 는 무엇 입니까 ps
?
$ ps -ef | grep XXXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep [X]XXX
[...] XXXX
답변1
grep을 실행하면 ps -ef | grep string
출력에 string
match 로 표시됩니다 [...] grep string
.
그러나 실행하면 grep이 로 변환되고 ps가 출력 되고 일치하는 항목이 없기 ps -ef | grep [s]tring
때문에 해당 행이 표시되지 않습니다.[s]tring
string
[...] grep [s]tring
string
답변2
대괄호는 bash에 대해 한 번, grep에 대해 한 번 이스케이프되어야 하기 때문에:
$ ps -ef | grep \\[X\\]XXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep "\[X\]XXX"
[...] XXXX
[...] grep XXXX