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