sed删除匹配的行,例子
时间: 2023-06-29 13:09:51 浏览: 78
假设有一个文件名为`example.txt`,其中包含以下内容:
```
apple
banana
orange
grape
watermelon
```
如果要删除包含单词"orange"的行,可以使用以下命令:
```
sed -i '/orange/d' example.txt
```
这将使用`sed`命令在`example.txt`中搜索所有包含单词"orange"的行,并将其删除。 `-i`选项将在原始文件中进行更改,而不是将结果输出到终端上。
相关问题
sed删除文件中匹配的多行字段
使用sed命令删除文件中匹配的多行字段,可以使用以下命令:
```bash
sed '/pattern1/,/pattern2/d' filename
```
其中,`pattern1`和`pattern2`是需要删除的字段所匹配的模式。这个命令将会删除从`pattern1`匹配到`pattern2`匹配之间的所有行。
如果要直接在原文件中进行修改,则可以使用以下命令:
```bash
sed -i '/pattern1/,/pattern2/d' filename
```
其中,`-i`选项表示直接修改原文件。
举个例子,假设我们有一个名为`example.txt`的文件,内容如下:
```
line 1
line 2 to be deleted
line 3 to be deleted
line 4
```
如果我们想要删除`line 2`和`line 3`这两行,可以使用以下命令:
```bash
sed '/to be deleted/,/to be deleted/d' example.txt
```
输出结果如下:
```
line 1
line 4
```
如果要直接修改原文件,则可以使用以下命令:
```bash
sed -i '/to be deleted/,/to be deleted/d' example.txt
```
此时,`example.txt`的内容被修改为:
```
line 1
line 4
```
sed的命令删除文本行,号及以后的所以文本
要删除文本行中逗号及其后面的所有文本,可以使用下面的sed命令:
```
sed 's/,.*//' filename
```
其中,s命令用于替换文本,',.*'匹配逗号及其后面的所有文本,将其替换为空。filename是要操作的文件名。
举个例子,如果有一个文件file.txt包含以下内容:
```
Hello world, how are you doing?
Today is a good day, isn't it?
```
运行sed 's/,.*//' file.txt后,终端将输出以下内容:
```
Hello world
Today is a good day
```
可以看到,逗号及其后面的所有文本都被成功删除了。需要注意的是,这个命令不会修改原始文件,只会将结果输出到终端。如果需要修改原始文件,可以使用sed -i选项,例如sed -i 's/,.*//' filename。