sed 표현식으로 바꾸기

sed 표현식으로 바꾸기

나는 다음과 같은 값을 얻으려고 노력하고 있습니다.

"909,999"

이를 통해(예제는 아무것도 대체하지 않음):

sed 's/["][0-9]+[,][0-9]+["]//g'

하지만 작동하지 않습니다.

답변1

패턴을 바꾸려면 @Kusalananda가 제안한 대로 문자를 사용 sed -E하거나 이스케이프 할 수 있습니다.+

$ printf '"123.456"\n"909,999"\n"100"\n' | sed -E 's/"[0-9]+,[0-9]+"//g'
"123.456"

"100"

또는

$ printf '"123.456"\n"909,999"\n"100"\n' | sed 's/"[0-9]\+,[0-9]\+"//g'
"123.456"

"100"

g이 예에서는 한 줄에 하나의 대체 항목만 있으므로 이 필요하지 않습니다.


일치하는 줄을 삭제하려면 d패턴 공간을 삭제하는 데 사용할 수 있습니다.

$ printf '"123.456"\n"909,999"\n"100"\n' | sed '/"[0-9]\+,[0-9]\+"/d'
"123.456"
"100"

관련 정보