使用sed命令如何将Linux路径替换为Windows路径

使用sed命令如何将Linux路径替换为Windows路径,linux,bash,awk,sed,Linux,Bash,Awk,Sed,我想使用“sed”命令将Linux路径更改为Windows路径,例如: Linux路径:/opt/test/dash/apps/tomcat到Windows路径: c:\\test\\dash\\apps\\tomcat 我试过: sed -i 's|'/opt/test/dash/apps/tomcat'|'c:\\\\\\\test\\\\\\\dash\\\\\\\apps\\\\\\\tomcat'|g' /filename - But no luck!! 我想要的全部/opt/应该用

我想使用“sed”命令将Linux路径更改为Windows路径,例如:

Linux路径:/opt/test/dash/apps/tomcat到Windows路径: c:\\test\\dash\\apps\\tomcat

我试过:

sed -i 's|'/opt/test/dash/apps/tomcat'|'c:\\\\\\\test\\\\\\\dash\\\\\\\apps\\\\\\\tomcat'|g' /filename - But no luck!!
我想要的全部/opt/应该用c:\\替换,其余的“/”应该用“\\”替换

注意:我正在使用ssh2_exec远程执行此命令,除上述命令外,所有“sed”命令都正常工作


提前谢谢

我会分两步来做:

$>echo '/opt/test/dash/apps/tomcat' | sed 's#/opt#c:#g'|sed 's#/#\\\\#g'
c:\\test\\dash\\apps\\tomcat

首先用
c:
更改
/opt
,然后用
\
更改
/
,您必须转义我会使用正则表达式,因此:

sed -r 's@/(.*)/(.*)/(.*)/(.*)/(.*)@C:\\\\\2\\\\\3\\\\\4\\\\\5@'

使用-r启用正则表达式的解释,并使用@作为sed分隔符,将路径拆分为5部分,然后在翻译的部分中使用\1\2等引用它们。

您好,谢谢,但是如何将相同的命令应用于一组文件?比如:sed's#/opt#c:#g'| sed's#/#g'*。properties我会使用for循环:
for i in*属性;做sed-i's#/opt#c:#g'| sed's#/#g'$i;谢谢,但我如何能执行同样的命令来改变文件内的内容,如:sed-r-r's的s@,但我如何能执行同样的命令来改变文件内的内容,如:sed-r的做做过的做过的做过,谢谢,但我如何能执行同样的命令来改变文件内的内容,但我如何能执行同样的命令来执行我的做过,但我如何才能执行同样的命令,但我如何能执行我的做过,但我如何如何能执行同样的命令来,但我如何能执行同样的命令来执行同样的命令来改变文件内的做过,但我,但我的做过,但我,但我如何如何如何能执行同样的,但我如何能执行同样的命令来执行相同的命令来执行同样的命令来改变文件内的,我,我,我,但我如何执行我如何执行同样的命令来改变文件内文件内的文件内的文件内的文件内的文件内的文件内的内的内的内的内的内容,但属性
sed
将屠宰生产线的末端。即使在使用
CR-LF
的Windows上,它也会将它们转换为Linux
LF
。在源文件上运行
sed
后,应运行
unix2dos.exe来修复它们。可能的重复项:,等等。