sed匹配到多个内容,匹配到的第一个内容这一行的下面添加一行
时间: 2023-09-12 18:12:55 浏览: 125
可以使用以下的 sed 命令实现:
```
sed '/pattern/{G;s/\n/ added text\n/;:a;n;ba}' file.txt
```
其中,`/pattern/` 指定了需要匹配的模式,`G` 用于将匹配行的内容与下一行合并,`s/\n/ added text\n/` 则用于在合并后的行末添加指定的文本。`:a;n;ba` 用于读取下一行,直到匹配到下一个目标行,并继续执行相同的操作。
需要将 `file.txt` 替换为需要处理的文件名。
相关问题
sed命令匹配到某一行
使用 sed 命令匹配到某一行,可以使用以下命令:
```
sed -n '行号p' 文件名
```
其中,行号代表你要匹配的行号,p 表示打印匹配到的行。例如,如果你要匹配文件 file.txt 中的第 5 行,可以使用以下命令:
```
sed -n '5p' file.txt
```
这样就可以打印出第 5 行的内容。如果你想匹配多个行,可以使用逗号分隔行号。例如,如果你想匹配文件 file.txt 中的第 5 行到第 8 行,可以使用以下命令:
```
sed -n '5,8p' file.txt
```
这样就可以打印出第 5 行到第 8 行的内容。
sed第2行到最后一行删除匹配的行
假设要删除以"foo"开头的所有行,可以使用以下命令:
```
sed '2,$ {/^foo/d}' filename
```
解释:
- `2,$` 表示从第二行到最后一行
- `{}` 用来分组多个命令
- `/^foo/` 匹配以 "foo" 开头的行
- `d` 删除匹配的行
阅读全文