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命令语言中的动作,表示“删除”当前行。

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

目录
相关文章
|
Unix Perl
sed的插入操作
sed的插入操作
728 4
|
tengine 虚拟化
在M2 MacBook上编译x86_64架构的Tengine
在M2 MacBook上编译x86_64架构的Tengine
907 1
|
存储 缓存 C语言
C语言:链表和数组有什么区别
C语言中,链表和数组是两种常用的数据结构。数组是一种线性结构,元素在内存中连续存储,通过下标访问,适合随机访问且大小固定的情况。链表由一系列不连续的节点组成,每个节点存储数据和指向下一个节点的指针,适用于频繁插入和删除操作的场景,链表的大小可以动态变化。
|
Linux Shell Perl
在Linux中,如何使用sed命令进行文本替换?
在Linux中,如何使用sed命令进行文本替换?
|
Perl
perl之print,printf,sprintf使用案例详解
perl之print,printf,sprintf使用案例详解
306 21
|
Unix Linux Perl
sed删除指定行
sed删除指定行
1621 1
|
Unix Perl
`sed` 命令完整指南教程
【8月更文挑战第20天】
1207 0
|
SQL 存储 Java
Hive 中的 SerDe 详解
【8月更文挑战第31天】
1050 1
|
网络协议 网络架构
动态图解 | 9分钟让你明明白白看懂Traceroute(路由追踪)的原理与实现
动态图解 | 9分钟让你明明白白看懂Traceroute(路由追踪)的原理与实现
2170 1
|
存储 API 数据库
Python|玩转 Asyncio 任务处理(2)
Python|玩转 Asyncio 任务处理(2)