首页 > 解决方案 > 使用 shell 脚本将文本替换为 pwd

问题描述

文件.txt

...
<LOCAL_PATH_TO_REPO>/src/java/example.java
...

^一个更长的文件,但这几乎解释了我想要做什么。

脚本.sh

dir=$(pwd)
# replace <LOCAL_PATH_TO_REPO> with dir

我尝试使用该sed命令,但由于某种原因它不起作用。关于如何做到这一点的任何想法?

标签: bashshellsedreplacepwd

解决方案


您的错误意味着您在变量文本中有反斜杠。

最简单的解决方案是将分隔符更改为变量文本中没有出现的分隔符。

如果没有逗号,请使用逗号:

sed -i "s,LOCAL_PATH_TO_REPO,$PWD," file.yml 

-i标志将更改引入输入文件(适用于 GNU sed)。


推荐阅读