sed删除指定行

简介: sed删除指定行

在Linux或类Unix系统中,sed(Stream Editor)可以用来编辑文本流,包括删除文件中指定的行。以下是几种不同场景下使用sed删除指定行的方法:

  1. 删除匹配特定模式的行
    如果你想删除包含某个特定字符串或模式的行,可以这样做:

    sed '/pattern/d' file
    

    这会删除所有包含pattern的行。

  2. 删除指定行号的单行
    若要删除文件中的第N行,命令如下:

    sed -i 'Nd' file
    

    其中,N 是你要删除的行号,-i 表示直接修改原文件(如果不加 -i,则会在标准输出显示修改后的结果,但原文件不会被改动)。

    例如,删除第2行:

    sed -i '2d' file
    
  3. 删除连续多行
    删除第5行到第10行:

    sed -i '5,10d' file
    
  4. 删除不连续的多行
    要删除不连续的行,你需要分别指定每一行:

    sed -i -e '1d' -e '3d' file
    

    这个命令会删除文件的第一行和第三行。

请注意,这些命令都是针对整个文件的操作。如果要在管道或者输入流中删除特定行,则可以直接替换 file 为管道符号 <input_stream>。同时,确保你有足够的权限来修改目标文件,否则在使用 -i 参数时可能会遇到问题。在实际操作前,建议先不加 -i 参数运行命令查看效果。

目录
相关文章
|
7月前
|
Unix Perl
sed的插入操作
sed的插入操作
442 4
|
7月前
|
Unix Linux Perl
sed的删除操作
sed的删除操作
272 4
|
7月前
|
Unix Shell Linux
sed的替换操作
sed的替换操作
59 3
|
7月前
|
Linux Perl
`sed`命令删除文件中匹配特定模式的行
`sed`命令删除文件中匹配特定模式的行
203 4
|
Perl
使用三剑客(awk,sed,grep)过滤目录权限
使用三剑客(awk,sed,grep)过滤目录权限
68 0
|
Linux Perl
LINUX使用sed删除匹配行
LINUX使用sed删除匹配行
544 0