![sed의 그룹 일치](https://linux55.com/image/177719/sed%EC%9D%98%20%EA%B7%B8%EB%A3%B9%20%EC%9D%BC%EC%B9%98.png)
concat(x,y)
sed 및 캡처 그룹을 사용하여 프로그래밍 방식으로 문자열을 문자열로 바꾸려고 합니다 . 여기서 및 임의의 숫자를 나타냅니다.xy
x
y
나는 다음이 트릭을 수행할 것이라고 생각합니다.
echo "concat(3,2)" | sed 's!concat(\(\d\),\(\d\))!"\1\2"!'
나는 기본적으로 세트의 모든 숫자를 캡처하고 두 세트를 나란히 출력하고 싶습니다. 이 명령의 결과를 이해할 수 없습니다.
concat(3,2)
내 sed
명령이 효과가 없는 이유는 무엇입니까? 이것이 얼마나 관련성이 있는지는 모르겠지만 저는 Mac을 사용하고 있습니다.
감사합니다!
답변1
기본적으로 sed
기본 정규식만 이해되므로 [0-9]
대신 다음 을 사용해야 합니다 \d
.
$ echo "concat(3,2)" | sed 's!concat(\([0-9]\),\([0-9]\))!"\1\2"!'
"32"