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