path - 如何在 sed 中将一个路径替换为另一个路径?

标签 path sed csh

我有一个 csh 脚本(尽管我可以更改语言,如果它有任何相关性),我必须:

sed s/AAA/BBB/ file

问题在于 AAA 和 BBB 是路径,因此包含“/”。 AAA 是固定的,所以我可以说:

sed s/\\\/A\\\/A\\\A/BBB/ file

但是,BBB 是基于变量的,包括 $PWD。如何转义 $PWD 中的“/”?

或者我应该有其他方式来完全做到这一点吗?

最佳答案

sed 可以在 s 命令中使用任何分隔符来代替 /。只需使用您的路径中未遇到的内容即可:

s+AAA+BBB+

等等。

或者(如果您不想猜测),您可以使用 sed 预处理路径以转义斜杠:

pwdesc=$(echo $PWD | sed 's_/_\\/_g')

然后使用 $pwdesc 执行您需要的操作。

关于path - 如何在 sed 中将一个路径替换为另一个路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12061410/

相关文章:

csh - 使用相对路径从另一个脚本调用一个 shell 脚本

csh - 如何让 csh 获取文件然后进行交互?

path - 如何避免在 csh 中重复路径变量

windows - 是否可以让 vim 在 Windows 上使用正斜杠?

windows - 在 Windows 上的 NodeJS 上使用 path.join 创建 URL

linux - 通过拆分特定列值来重复行

regex - sed - 如何使用 sed 进行正则表达式组

c# - 序列化到 XML 路径问题

css - 我的 haml 文件中的 css 路径有问题

linux - 在目录树中查找每个目录中的文件数