これを変換しようとしています。
url = ssh://[email protected]/project/repo.git
到着
url = ssh://[email protected]/scm/project/repo.git
しかし、これは単純なsed
検索と置換ではありません。\turl
文字列がで始まり、含まれていない場合にのみ検索と置換を適用したいと思いますscm
。
以下を含む行のみを置き換える開始セクションがあります。\turl
cat .git/config | sed "/\turl/ s=\.com\/=\.com\/scm\/=g"
scm
ただし、等度を持たせるために、すでに文字列が含まれていることを確認することはできません。そうではなく、sedを使用してコマンドを実行し続ける場合は、-i
続行しますscm
。
ベストアンサー1
sedでは、次のように動作します。
sed '/url/ { /scm/! s=\.com/=\.com/scm/=g }'
アドレスを追加して無効にすることができ!
、ブロックを使用してアドレス正規表現を他のアドレス正規表現に適用できます。
または、次の点を確認する必要があるscm
場合もあります。.com/
sed '/url/ { \=\.com/scm/= ! s=\.com/=\.com/scm/=g }'