sed의 그룹 일치

sed의 그룹 일치

concat(x,y)sed 및 캡처 그룹을 사용하여 프로그래밍 방식으로 문자열을 문자열로 바꾸려고 합니다 . 여기서 및 임의의 숫자를 나타냅니다.xyxy

나는 다음이 트릭을 수행할 것이라고 생각합니다.

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"

관련 정보