정규식이 sed 명령의 입력과 일치하지 않는 이유 [중복]

정규식이 sed 명령의 입력과 일치하지 않는 이유 [중복]

"ps aux" 출력에서 ​​여분의 공백을 제거하고 공백 하나로 바꾸고 싶습니다. 내가 한 일은 다음과 같습니다.

ps axu | sed 's/[ ]+/ /g'

하지만 출력이 변경되지 않는 것 같습니다. 여전히 토큰 사이에 공백이 너무 많습니다.

username    4876 ... <the rest of columns ommitted>

이 정규식이 사용자 이름과 pid 사이의 공백과 일치하지 않는 이유는 무엇입니까?

답변1

sedBRE(기본 정규 표현식)가 사용되지만 +BRE의 일부가 아니기 때문입니다 . s/ */ /(패턴 부분에 두 개의 공백)을 사용 하거나 -EGNU 또는 BSD의 확장 정규 표현식에 사용 sed:sed -E 's/ +/ /g'

관련 정보