패턴의 첫 글자 뒤에 텍스트 삽입

패턴의 첫 글자 뒤에 텍스트 삽입

/foo/브래킷을 연 후에 삽입하는 방법과 브래킷을 연 후에만 삽입하는 방법은 무엇입니까 ?

(bar)

되어야 한다

(/foo/bar)

하지만 (/baz/bar)그래야 한다아니요~이 되다(/baz/foo/bar)

답변1

이 간단한 예에서는 다음을 시도해 볼 수 있습니다.

sed 's,(bar,(/foo/bar,'

답변2

/foo/당신이 추가 하고 싶다고 가정하면 복잡한 방법어느괄호 사이의 패턴:

$ echo '(bar)' | sed 's;(/*\([^(]*\);(/foo/\1;'
(/foo/bar)

$ echo '(/bar/baz)' | sed 's;(/*\([^(]*\);(/foo/\1;'
(/foo/bar/baz)

주문 내용은 다음과 같습니다.

대괄호 사이에 있는 항목을 선택하고 이를 캡처하고(슬래시로 시작할 수 있음 /) 또는 캡처된 패턴 으로 (바꿉니다.(//foo/.

답변3

사용 awk:

awk '/\(bar/ {sub(/bar/, "/foo/bar"); }1' input

그리고 sed:

sed -E 's%([(])(bar)%\1/foo/\2%' input

이는 에 대해 역참조 \1 (및 에 대해 \2를 사용합니다 bar.

관련 정보