![sed 표현식으로 교체 [닫기]](https://linux55.com/image/154982/sed%20%ED%91%9C%ED%98%84%EC%8B%9D%EC%9C%BC%EB%A1%9C%20%EA%B5%90%EC%B2%B4%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
나는 다음과 같은 값을 얻으려고 노력하고 있습니다.
"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"