目标:用正斜杠替换所有反斜杠。
实际字符串:\\ test.abc.com \ path1 \ path1_1 \ 123 \ ubntu
预期字符串://test.abc.com/path1/path1_1/123/ubntu
试图让上述工作变得非常重要
有什么想法吗?
编辑:在Jenkins中读取为Env变量 完整的用例是:它们通过jenkins作为Windows UNC Paths传递,需要在Unix上安装
在Python上* nix
当通过变量尝试时,它的行为有所不同!当我通过python读取变量时,' \'字符串被翻译切断。我已经尝试将repr(变量)与.decode(' string_escape')结合使用但无济于事。 raw_input()在unix上的python中没有帮助
这里是主要的名为test1.py
的python脚本S =应用re.sub(R' \',R' /',再版(sys.argv中[1] .decode(' string_escape')) , 哪个是运行的 python test1.py \ test.abc.com \ path1 \ path1_1 \ 123 \ ubntu ,输出结果是 //test.abc.compath1path1_1123ubntu; 为什么python会思考' \'无法显示:-( -
现在通过env变量尝试通过sed。
答案 0 :(得分:2)
您可以使用其他工具,但翻译字符是为{:1>创建的作业tr
$ tr '\\' '/' < file
//test.abc.com/path1/path1_1/123/ubntu
答案 1 :(得分:1)
针对环境变量进行了更新。
你说路径在环境变量中(比方说UNC_PATH),所以在Python中:
# test.py
import re, sys
s = re.sub(r'\\', r'/', sys.argv[1])
print s
并像这样调用它:
$ UNC_PATH=\\\\test.abc.com\\path1\\path1_1\\123\\ubntu
$ python test.py $UNC_PATH
//test.abc.com/path1/path1_1/123/ubntu
对于sed,请执行以下操作:
$ echo $UNC_PATH | sed -e 's/\\/\//g'
//test.abc.com/path1/path1_1/123/ubntu
原始回答
使用sed:
$ echo '\\test.abc.com\path1\path1_1\123\ubntu' | sed -e 's/\\/\//g'
//test.abc.com/path1/path1_1/123/ubntu
在Python中:
>>> import re
>>> s = re.sub(r'\\', r'/', r'\\test.abc.com\path1\path1_1\123\ubntu')
>>> print s
//test.abc.com/path1/path1_1/123/ubntu
答案 2 :(得分:0)
通过sed,
$ sed 's~\\~/~g' file
//test.abc.com/path1/path1_1/123/ubntu
通过Python,
>>> import re
>>> s = r'\\test.abc.com\path1\path1_1\123\ubntu'
>>> print s
\\test.abc.com\path1\path1_1\123\ubntu
>>> m = re.sub(r'\\', r'/', s)
>>> print m
//test.abc.com/path1/path1_1/123/ubntu