如何解决使用sed更改URL中的斜线方向
我已经看到了一些与此相关的主题,但我尝试的一切似乎都没有效果。我正在使用Mac中的终端执行此操作。
我希望将反斜杠更改为正斜杠,并且希望通过使用sed命令来实现。
我的URL线程基本上是
ServerDrive\Folder1\Folder2\Folder3\Folder4\Folder5\Folder6\Folder7\Folder8\Folder9
我相信我可以使用类似sed -e "s/\\\\/\//"
但是我不确定如何绑定整个命令,我是否需要从某种回声语句开始?就像我将所有东西粘合在一起一样
ServerDrive\Folder1\Folder2\Folder3\Folder4\Folder5\Folder6\Folder7\Folder8\Folder9 sed -e "s/\\\\/\//"
终端产生的错误显示为-bash:ServerDrive:命令未找到。
解决方法
是的,您需要echo
和一个管道。否则,您在该行上键入的第一件事就是要执行的命令-这只是基本的shell语法。
您还需要g
修饰符以使其替换行中的所有斜杠,而不仅仅是第一个。
echo 'ServerDrive\Folder1\Folder2\Folder3\Folder4\Folder5\Folder6\Folder7\Folder8\Folder9' | sed -e 's#\\#/#g'
或者您可以使用here字符串(请注意,这是bash
扩展名)。
sed -e 's#\\#/#g' <<< 'ServerDrive\Folder1\Folder2\Folder3\Folder4\Folder5\Folder6\Folder7\Folder8\Folder9'
此外,要替换单个字符,可以使用tr
而不是sed
:
tr '\' '/' <<< 'ServerDrive\Folder1\Folder2\Folder3\Folder4\Folder5\Folder6\Folder7\Folder8\Folder9'
如果URL在变量中,请使用bash的parameter expansion运算符替换子字符串。
url='ServerDrive\Folder1\Folder2\Folder3\Folder4\Folder5\Folder6\Folder7\Folder8\Folder9'
echo "${url//\\//}"
,
您可以使用tr
命令(tr manpage)将一组字符替换为另一组字符
echo 'ServerDrive\Folder1\Folder2\Folder3\Folder4\Folder5\Folder6\Folder7\Folder8\Folder9' | tr '\\' '/'
输出
➜ ~ echo 'ServerDrive\Folder1\Folder2\Folder3\Folder4\Folder5\Folder6\Folder7\Folder8\Folder9' | tr '\\' '/'
ServerDrive/Folder1/Folder2/Folder3/Folder4/Folder5/Folder6/Folder7/Folder8/Folder9
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。