我有一个 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/