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