Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell:检索字符后的字符串并用另一个字符替换它_Shell_Svn - Fatal编程技术网

Shell:检索字符后的字符串并用另一个字符替换它

Shell:检索字符后的字符串并用另一个字符替换它,shell,svn,Shell,Svn,在我詹金斯的工作中, 我正在使用一个环境变量:$SVN\u URL,其中: $SVN_URL=http://svn.local:8080/svn/project1/trunk 我将在下一步中执行此shell命令: svn copy http://svn.local:8080/svn/project1/trunk http://svn.local:8080/svn/project1/tags/v$RELEASE_VERSION \ -m "Tagging the v$REL

在我詹金斯的工作中, 我正在使用一个环境变量:$SVN\u URL,其中:

$SVN_URL=http://svn.local:8080/svn/project1/trunk
我将在下一步中执行此shell命令:

svn copy http://svn.local:8080/svn/project1/trunk http://svn.local:8080/svn/project1/tags/v$RELEASE_VERSION \
           -m "Tagging the v$RELEASE_VERSION release"
此命令可以替换为以下内容(使用我的$SVN_URL):

但我仍然无法对第二部分进行优化,即:

http://svn.local:8080/svn/project1/tags/v$RELEASE_VERSION
因此,我想使用我的$SVN_URL来实现它

因此,请继续:

  • 我的$SVN\u URL包含:
    http://svn.local:8080/svn/project1/trunk/
  • 我想从中检索部分:
    /trunk/
  • 将其添加到以下部分:
    /tag/
  • 建议?

    我只使用了“sed”,效果很好

    svn copy $SVN_URL "$(echo $SVN_URL| sed 's/trunk/tags/')"/v$RELEASE_VERSION \
              -m "Tagging the v$RELEASE_VERSION release"
    

    您可以使用
    sed
    该问题的许多答案的可能副本,这些答案可移植到其他POSIX shell。这里根本没有标记shell,所以这个问题实际上是Bash问题的可能性不大。不管怎样,这都是一个常见的副本,而且内容太广泛,因为OP在发布之前似乎没有做过任何研究。
    svn copy $SVN_URL "$(echo $SVN_URL| sed 's/trunk/tags/')"/v$RELEASE_VERSION \
              -m "Tagging the v$RELEASE_VERSION release"