📅  最后修改于: 2023-12-03 15:09:42.789000             🧑  作者: Mango
sed
(stream editor)是一种流编辑器,用于文本处理。它通常用于在文本处理管道中过滤和转换文本。通常sed
命令主要是使用正则表达式进行匹配,对匹配到的文本进行替换、删除、添加等操作。除此之外,sed
还有一个很实用的功能,就是可以带变量进行字符串替换。这个功能在一些需要根据输入的不同动态生成文本的场景下非常常用。
sed
命令的替换模式/s/old/new/g
中,old
是需要被替换的文本,new
是替换成的新文本,g
表示一行中所有匹配的文本都会被替换。在替换模式中使用变量需要注意的是,在sed
命令中使用"
包含需要替换的文本以及变量,因为单引号不会展开变量。另外,在"
中需要使用$
符号加上变量名,这样sed
会自动替换成变量的值。
比如,我们有一个文件名叫做test.txt
,它包含如下内容:
hello world
现在我们想要将hello
替换成一个变量${VAR}
的值,VAR
可以在脚本中进行定义。我们可以这样写:
VAR="foo"
sed "s/hello/${VAR}/g" test.txt
这条命令会输出:
foo world
其中,s/hello/${VAR}/g
表示将hello
替换成${VAR}
。${VAR}
会被自动替换成变量值foo
。g
表示全局替换。
带变量的sed
命令可以帮助我们在脚本中动态生成文本。在sed
替换模式中使用变量需要注意使用"
包含需要替换的文本以及变量,并且需要使用$
符号加上变量名。在有需要的场景下,可以灵活运用这个功能进行文本处理。
#!/bin/bash
VAR="foo"
sed "s/hello/${VAR}/g" test.txt
# 带变量的 sed - Shell-Bash
## 介绍
`sed`(stream editor)是一种流编辑器,用于文本处理。它通常用于在文本处理管道中过滤和转换文本。通常`sed`命令主要是使用正则表达式进行匹配,对匹配到的文本进行替换、删除、添加等操作。除此之外,`sed`还有一个很实用的功能,就是可以带变量进行字符串替换。这个功能在一些需要根据输入的不同动态生成文本的场景下非常常用。
## 用法
`sed`命令的替换模式`/s/old/new/g`中,`old`是需要被替换的文本,`new`是替换成的新文本,`g`表示一行中所有匹配的文本都会被替换。在替换模式中使用变量需要注意的是,在`sed`命令中使用`"`包含需要替换的文本以及变量,因为单引号不会展开变量。另外,在`"`中需要使用`$`符号加上变量名,这样`sed`会自动替换成变量的值。
比如,我们有一个文件名叫做`test.txt`,它包含如下内容:
hello world
现在我们想要将`hello`替换成一个变量`${VAR}`的值,`VAR`可以在脚本中进行定义。我们可以这样写:
```bash
VAR="foo"
sed "s/hello/${VAR}/g" test.txt
这条命令会输出:
foo world
其中,s/hello/${VAR}/g
表示将hello
替换成${VAR}
。${VAR}
会被自动替换成变量值foo
。g
表示全局替换。
带变量的sed
命令可以帮助我们在脚本中动态生成文本。在sed
替换模式中使用变量需要注意使用"
包含需要替换的文本以及变量,并且需要使用$
符号加上变量名。在有需要的场景下,可以灵活运用这个功能进行文本处理。
#!/bin/bash
VAR="foo"
sed "s/hello/${VAR}/g" test.txt