shell脚本中的sed命令,sed中带有变量,请问怎么写?
时间: 2024-02-03 14:13:03 浏览: 64
在sed命令中使用变量,可以使用双引号将sed命令括起来,并在变量前加上$符号。例如,我们有一个变量$pattern,想在sed命令中使用它,可以这样写:
```
pattern="s/foo/bar/g"
sed "$pattern" file.txt
```
这个命令会将file.txt中的所有foo替换为bar。注意,因为变量被双引号包含,所以变量中的特殊字符需要转义。
相关问题
linux中sed命令如何在shell脚本中使用
在 Linux 中,可以使用 sed 命令来对文本文件进行编辑和转换。在 Shell 脚本中,sed 命令可以使用反引号或 $() 进行命令替换,也可以直接在脚本中使用 sed 命令。
以下是使用反引号进行命令替换的示例:
```
#!/bin/bash
VAR=`sed 's/old/new/g' file.txt`
echo $VAR
```
以上脚本将会把 file.txt 中的所有 "old" 替换为 "new",并将结果存储在 VAR 变量中,并输出 VAR 变量的值。
以下是直接在脚本中使用 sed 命令的示例:
```
#!/bin/bash
sed -i 's/old/new/g' file.txt
```
以上脚本将会把 file.txt 中的所有 "old" 替换为 "new",并将修改保存回原始文件。
需要注意的是,sed 命令有很多选项和参数,具体使用方法可以查看 sed 命令的帮助文档。
在shell脚本中使用sed命令,把名字为ssl_proxy.json文件中名字叫做local_port的变量替换为for循环的i值
您可以使用如下的sed命令来完成这个任务:
```
sed -i 's/"local_port":.*/"local_port":'$i'/' ssl_proxy.json
```
其中,-i选项表示直接修改文件内容,而不是输出到终端;s表示替换操作;"local_port":.*表示匹配名字为local_port的变量及其值;'$i'表示用$i的值替换匹配到的内容。请注意,如果$i的值中包含特殊字符,可能会导致sed命令失效,此时需要对$i的值进行转义处理。
阅读全文