sed -i 替换字符串
时间: 2023-12-08 07:39:38 浏览: 86
sed -i命令可以用于直接修改文件内容,而不需要将修改后的内容输出到终端。下面是一个替换字符串的例子:
假设我们有一个名为test.txt的文件,其中包含字符串"hello world",我们想要将其中的"world"替换为"python",可以使用以下命令:
```shell
sed -i 's/world/python/g' test.txt
```
其中,'s/world/python/g'表示将字符串中的"world"替换为"python",g表示全局替换,即一行中有多个"world"时都会被替换。
如果要替换的字符串中包含特殊字符,可以使用#或其他字符代替/,例如:
```shell
sed -i 's#hello/world#hello/python#g' test.txt
```
这样就可以将"hello/world"替换为"hello/python"了。
相关问题
lunux 命令sed -i 替换多个文件里固定字符为空串
`sed` 是一个强大的文本处理工具,常用于对文本进行流编辑。它的名字是 "stream editor" 的缩写,通常用于快速执行文本替换、插入、删除等操作。在 Linux 系统中,`sed` 命令常用来处理和转换文本数据。
`sed` 命令中的 `-i` 选项表示直接修改文件内容,而不是将结果输出到标准输出(通常是屏幕)。如果你想在多个文件中替换某个固定字符为空串,你可以使用循环结合 `sed` 命令来实现。
这里给出一个简单的例子,假设我们要将文件 `file1.txt`、`file2.txt` 和 `file3.txt` 中所有的 "oldstring" 替换为一个空字符串(即删除这个字符串),可以使用以下命令:
```bash
for file in file1.txt file2.txt file3.txt; do
sed -i 's/oldstring//g' "$file"
done
```
上述命令中的 `s/oldstring//g` 是一个 `sed` 的替换表达式,其中:
- `s` 表示替换操作。
- `/oldstring/` 是要被替换的目标字符串。
- 第二个 `/` 后面是替换后的字符串,这里为空,表示删除操作。
- `g` 表示全局替换,即一行中的所有匹配项都会被替换。
需要注意的是,如果你要处理的是二进制文件或者其他特殊文件类型,直接使用 `-i` 选项可能会破坏文件内容,因为 `sed` 主要用于处理文本文件。在处理非文本文件时要小心谨慎,或者先对文件内容进行检查,确保替换操作是安全的。
sed -i 单行替换
对于sed命令的`-i`选项,它表示直接在文件中进行修改而不是输出到标准输出。在单行替换中,我们可以使用sed命令的`s`命令来实现替换。具体步骤如下:
1. 使用`s`命令进行替换,格式为`s/目标内容/替换内容/`。其中,目标内容可以是普通字符串或正则表达式,替换内容必须是普通字符串。如果需要全局替换,可以添加`g`参数,如`s/目标内容/替换内容/g`。
举个例子,假设我们要将文件test.txt中的"old"替换为"new":
```
sed -i 's/old/new/' test.txt
```
这个命令将会在test.txt中将所有的"old"替换为"new"。
参考资料:
三、文本替换 格式为:sed -i "s#目标内容#替换内容#g"【文件名】。https://blog.csdn.net/zhangpeterx/article/details/82703020
阅读全文