sed如何删除匹配行前2行
时间: 2024-05-01 21:16:28 浏览: 11
可以使用以下命令来删除匹配行前2行:
```
sed '1,2d;/pattern/d' filename
```
其中,`1,2d`表示删除文件的前两行,`/pattern/d`表示删除匹配模式的行。将它们结合起来,即可删除匹配行前2行。注意,这个命令会在原文件上修改,如果需要保留原文件,需要使用重定向将输出写入新文件中。
相关问题
sed -i '1 i<urlset>' $filename为啥能匹配最后一行
这是因为 sed 命令在执行时是按行读取文件的。在执行 `sed -i '1 i<urlset>' $filename` 命令时,sed 会在文件的第一行前插入 `<urlset>`,如果这个文件本身只有一行,则插入的内容会位于这一行的前面。
如果要在文件的最后一行插入 `<urlset>`,可以使用如下命令:
```
sed -i '$ a<\/urlset>' $filename
```
其中 `$` 表示最后一行,a 表示追加命令,`<\/urlset>` 表示要插入的内容。
sed 命令
sed命令是一种流编辑器,用于对文本进行处理和转换。它可以从输入流中读取文本,并根据指定的规则进行编辑和修改,然后将结果输出到标准输出流或文件中。
sed命令的基本语法如下:
```
sed [选项] '动作' 文件
```
其中,选项可以用来指定sed命令的一些参数,比如-i表示直接修改文件内容。动作是对文本进行处理的具体操作,可以是替换、删除、插入等。文件是要处理的文本文件。
以下是sed命令的一些常用动作:
1. 替换操作:使用`s/old/new/`的格式进行替换,将文本中的old替换为new。
2. 删除操作:使用`d`命令删除匹配到的行。
3. 插入操作:使用`i`命令在指定行前插入新行。
4. 追加操作:使用`a`命令在指定行后追加新行。
5. 打印操作:使用`p`命令打印匹配到的行。
以下是一些相关问题:
1. sed命令的常用选项有哪些?
2. sed命令如何进行全局替换?
3. sed命令如何删除空白行?
4. sed命令如何在指定行后插入新行?
5. sed命令如何将匹配到的行保存到新文件中?