使用 shell 脚本将文本替换为 pwd
Posted
技术标签:
【中文标题】使用 shell 脚本将文本替换为 pwd【英文标题】:Use a shell script to replace text with pwd 【发布时间】:2020-02-14 19:07:25 【问题描述】:文件.txt
...
<LOCAL_PATH_TO_REPO>/src/java/example.java
...
^一个更长的文件,但这几乎解释了我想要做什么。
script.sh
dir=$(pwd)
# replace <LOCAL_PATH_TO_REPO> with dir
我尝试使用sed
命令,但由于某种原因它不起作用。关于如何做到这一点的任何想法?
【问题讨论】:
@anubhava Ransed "s/<LOCAL_PATH_TO_REPO>/$PWD/" file.yml
并得到以下错误:sed: 1: "s/<LOCAL_PATH_TO_REPO>/ ...": bad flag in substitute command: 'U'
对不起使用:sed "s~LOCAL_PATH_TO_REPO~$PWD~" file.yml
@anubhava 成功了!谢谢!
【参考方案1】:
您的错误意味着您在变量文本中有反斜杠。
最简单的解决方案是将分隔符更改为变量文本中不出现的分隔符。
如果没有逗号,请使用逗号:
sed -i "s,LOCAL_PATH_TO_REPO,$PWD," file.yml
-i
标志将更改引入输入文件(适用于 GNU sed
)。
【讨论】:
以上是关于使用 shell 脚本将文本替换为 pwd的主要内容,如果未能解决你的问题,请参考以下文章
Shell脚本学习指南 [ 第四章 ] 查找与替换文本处理工具