linux - 获取 sed 以用参数替换文本

标签 linux bash scripting sed replace

好吧,我知道这是一个简单的问题,但我似乎无法让这个 sed 命令工作。我正在尝试获取一个文本文件并将其中的一部分从占位符文本替换为学习代码。当脚本首次运行时,它将用来替换它的研究代码使用参数传递到脚本中。问题是,当我尝试用变量 $study 替换占位符文本时,它会用字面上的“$study”替换它。

现在我的论点是这样的:

export study=$1

export tag=$2

export mode=$3

export select=$4

我的 sed 命令如下所示:

sed -i.backup -e 's/thisisthestudycodereplacethiswiththestudycode/$study/' freq.spx

是否有一些简单的方法让 sed 不查看字面的 $study,或者在这一点上以另一种方式做会更好吗?

最佳答案

使用双引号代替单引号。

因为 ' 引用可以防止 shell 变量扩展,而 " 引用不会。

关于linux - 获取 sed 以用参数替换文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/854186/

相关文章:

linux - 根据内容将文件分类到文件夹的 Bash 脚本;如何解决变量中的通配符?

php - 生成 11,000,000 个唯一 ID 的最快方法

linux - 从文件中解析字符串并设置为变量 - Shell 脚本

linux - grep 但可索引?

c++ - 在 Ubuntu 中调用共享库

bash - 在没有 curl 的情况下在 Bash 中使用 API

linux - debian vps 上的 gvm 安装错误

linux - 奇怪的 VIM 配色方案,我不知道我的配置出了什么问题

c - 如何使用 linux 原生 AIO 将数据写入不是 512*n 字节的偏移量?

bash - curl:参数列表太长