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"

관련 정보