sed的删除操作

简介: sed的删除操作

sed (Stream Editor) 在Linux和类Unix系统中是一个非常强大的文本处理工具,它可以执行各种文本流编辑操作,包括删除文件中的特定行。以下是sed进行删除操作的一些基本用法:

  1. 删除指定行

    • 删除单一行(例如删除第5行):
      sed '5d' filename.txt
      
    • 删除一个范围内的行(例如删除第1行到第4行):
      sed '1,4d' filename.txt
      
  2. 删除匹配正则表达式的行

    • 删除包含特定模式(例如删除所有包含 "La" 的行):
      sed '/La/d' filename.txt
      
  3. 删除不匹配正则表达式的行(保留匹配行):

    • 删除不包含 "La" 的行:
      sed '/La/!d' filename.txt
      
  4. 删除空行

    • 删除只包含空白字符(换行符除外)的空行:
      sed '/^$/d' filename.txt
      
    • 或者更简单的方法,如果空行是指没有非空白字符的行:
      sed '/^ *$/d' filename.txt
      
  5. 删除文件尾部的若干行

    • 删除最后n行(例如删除最后3行):
      sed -e :a -e '$d;N;2,$ba' filename.txt
      
      或者使用较新的GNU sed版本:
      sed -i '$d' filename.txt # 删除最后一行
      sed -i -e :a -e '$d;N;2,$ba' filename.txt # 删除最后n行
      

注意:

  • -i 参数表示直接修改原文件,如果不加 -i,sed默认只输出修改后的结果到标准输出,而不会改变原文件。
  • d 是sed命令语言中的动作,表示“删除”当前行。

以上命令都是在命令行中运行,如果需要对文件进行永久性修改,请确保先备份原始文件。在很多情况下,尤其是在生产环境中,建议先测试命令的正确性后再应用到实际文件上。

目录
相关文章
|
6月前
|
Unix Perl
sed的插入操作
sed的插入操作
420 4
|
6月前
|
Unix Linux Perl
sed删除指定行
sed删除指定行
397 1
|
6月前
|
Unix Shell Linux
sed的替换操作
sed的替换操作
56 3
|
6月前
|
Linux Perl
`sed`命令删除文件中匹配特定模式的行
`sed`命令删除文件中匹配特定模式的行
150 4
|
Perl
使用三剑客(awk,sed,grep)过滤目录权限
使用三剑客(awk,sed,grep)过滤目录权限
57 0
|
Linux Perl
LINUX使用sed删除匹配行
LINUX使用sed删除匹配行
536 0
|
开发工具
oeasy教您玩转vim - 10 - # 插入新行
oeasy教您玩转vim - 10 - # 插入新行
318 0