Gostaria de substituir os caracteres de espaço (
) no nome dos ramos por um sublinhado ( _
). Por exemplo, digamos que eu tenha um arquivo sedtest contendo:
Node-path: trunk/
Node-path: trunk/src/lib 0
Node-path: trunk/src/lib 0/bla.txt
Node-path: branches/ branch0-blabla_blabla/src
Node-path: branches/ branch0-blabla_blabla
Node-path: branches/branch1 stuffthing
Node-path: branches/branch1 stuffthing/src/lib 0
Node-path: branches/branch1 stuffthing/src/lib 0/bla.txt
Node-path: branches/branch2stuffthing/src/lib 0/bl a.txt
Eu gostaria que fosse modificado assim:
Node-path: trunk/
Node-path: trunk/src/lib 0
Node-path: trunk/src/lib 0/bla.txt
Node-path: branches/_branch0-blabla_blabla/src
Node-path: branches/_branch0-blabla_blabla
Node-path: branches/branch1_stuffthing
Node-path: branches/branch1_stuffthing/src/lib 0
Node-path: branches/branch1_stuffthing/src/lib 0/bla.txt
Node-path: branches/branch2stuffthing/src/lib 0/bl a.txt
Estou tendo um problema semelhante ao descrito em esta pergunta SO . No entanto, essa pergunta solicita a substituição de todos os espaços no caminho. Gostaria de substituir os espaços apenas nos nomes dos ramos.
A partir dessa outra questão, modifiquei o comando sed
para:
sed '/^Node-path: branches\//s/ /_/2' < sedtest
Mas também modifica a última linha para Node-path: branches/branch2stuffthing/src/lib_0/bl a.txt
, que deve permanecer intocada. Minha experiência com sed
sendo bastante limitada, não consegui limitar adequadamente a "região de pesquisa" ao que está entre branches/
e as seguintes /
ou $
, o que ocorrer primeiro. Estou usando o CentOS 7.
Quanto ao que estou tentando realizar: Estou tentando transportar nosso repositório SVN para um git one e, de acordo com esta resposta em SO e na minha experiência pessoal, nomes de ramos git não podem ter espaços neles. Eu estou tentando consertar isso através de um despejo svn como sugerido em svnbook.red-bean.com .
Eu suponho que eu poderia grep todos os ramos defeituosos e substituir manualmente as seqüências de caracteres, mas isso seria menos genérico, mais trabalho e muito menos divertido .