Linux 删除所有包含某个字符串的行
时间: 2024-05-01 16:18:37 浏览: 93
在Linux中,可以使用以下命令删除包含特定字符串的所有行:
```
sed -i '/string/d' file.txt
```
其中,`string`是要删除的字符串,`file.txt`是要从中删除字符串的文件名。`-i`选项表示直接在文件中修改,而不是将输出打印到终端上。
例如,要从文件`example.txt`中删除所有包含字符串`foo`的行,可以输入以下命令:
```
sed -i '/foo/d' example.txt
```
这将删除所有包含字符串`foo`的行,并将更改保存回原始文件`example.txt`中。
相关问题
linux指令删除包含某个字串所在的行
在Linux中,可以使用`grep`命令查找文件中包含特定字符串的行,然后结合`sed`命令删除找到的那些行。首先,使用`grep`筛选出含有指定字符串的行,接着将结果传递给`sed`进行删除操作。以下是具体的步骤:
```sh
# 假设你要删除文件file.txt中包含"example_string"的所有行
grep -rl "example_string" file.txt | xargs sed -i '/example_string/d'
```
解释一下这个命令:
1. `grep -rl "example_string" file.txt`: `-r`表示递归搜索目录及其子目录,`-l`只显示匹配到的文件名,`"example_string"`是你想查找的字符串。
2. `|`: 管道符,用于将`grep`的结果传递给下一个命令。
3. `xargs`: 将管道的内容作为参数传递给`sed`,这里的意思是针对每个文件名运行`sed`。
4. `/example_string/d`: 这是在`sed`命令中执行的操作,`d`表示删除当前行,如果行里包含"example_string"。
阅读全文