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

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

/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.

관련 정보