sed命令替换目录下全部文件
时间: 2024-01-03 11:05:56 浏览: 50
使用 `sed` 命令替换目录下全部文件可以使用以下命令:
```bash
find /path/to/directory -type f -exec sed -i 's/old_text/new_text/g' {} +
```
其中,`/path/to/directory` 是要替换文件的目录路径,`old_text` 是要替换的文本,`new_text` 是替换后的文本。
这个命令会在指定的目录下查找所有文件,并将其中匹配到的 `old_text` 替换为 `new_text`。`-i` 选项表示直接在原文件中进行替换,而不是输出到终端。`-exec` 选项表示对找到的每个文件执行后面的命令,最后的 `{} +` 表示将找到的所有文件一起传递给命令,而不是一个一个地传递。
相关问题
如何用sed 递归替换目录下所有文件的内容(包含子目录)
可以使用以下命令来递归替换目录下所有文件的内容:
```
find /path/to/directory -type f -exec sed -i 's/old_string/new_string/g' {} +
```
其中,`/path/to/directory` 是要替换的目录路径,`old_string` 是要被替换的字符串,`new_string` 是要替换成的新字符串。`-type f` 表示只替换文件,不替换目录。`-exec` 表示对找到的每个文件执行后面的命令,`{}` 表示找到的文件名,`+` 表示在一次命令中处理尽可能多的文件。
注意,这个命令会直接修改原文件内容,请谨慎使用。如果想要备份原文件,可以在执行命令前先复制一份。
Sed命令 替换文件夹内容
Sed 命令可以用来替换文件夹中的内容。下面是一个使用 Sed 命令替换文件夹中所有文件中的特定字符串的示例:
```
find /path/to/folder -type f -exec sed -i 's/old_string/new_string/g' {} +
```
其中,`/path/to/folder` 是文件夹的路径,`old_string` 是要替换的字符串,`new_string` 是要替换成的字符串。`-type f` 表示只操作文件而不操作目录,`-exec` 表示执行命令,`{} +` 是一个占位符,表示找到的所有文件都会被依次传递到 `sed` 命令中进行处理。
需要注意的是,这个命令会直接修改文件内容,所以请先备份文件夹中的内容,以免出现意外情况。