文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

在 Linux 命令行中删除文件中的某一行

2024-12-01 12:16

关注

我们大家都知道,在 vim 中删除文件中的某几行很简单,只需要按下 dd 键即可。那么,在不主动打开文件的情况下,通过命令行怎样删除文件中特定的某行呢?

使用像 rm 这样的命令,会删除整个文件,但我们并不希望这样做。使用 vim 或者 nano 这样的文本编辑器,并不适用于 bash 脚本的自动化。

合适的方案,是使用 sed 命令,它可以在 shell 脚本中使用。

我们今天将介绍几种使用的场景和例子。

注意,我们介绍的例子会修改原始文件,所以如果大家在平时使用或者练习的时候,最好先做好备份。

从文件中删除某一行

假如我们要删除文件中的第7行,那么可以这样使用 sed 命令:

sed -i '7d' filename

我们来解释一下上述命令:

我们举个实际的例子,假如有一个名为 tiap.txt 的文件,其内容为:

The Mystery of the Blue Train
The Seven Dials Mystery
The Murder at the Vicarage
Giant's Bread
The Floating Admiral
The Sittaford Mystery
Peril at End House
Lord Edgware Dies

删除第4行:

sed '4d' tiap.txt

上述命令将会删除 Giant's Bread 这一行,如下为结果:

The Mystery of the Blue Train
The Seven Dials Mystery
The Murder at the Vicarage
The Floating Admiral
The Sittaford Mystery
Peril at End House
Lord Edgware Dies

接下来,我们删除第一行:

sed -i '1d' filename

注意:如果希望在不修改文件本身的情况下查看操作结果,请不要使用 -i 选项。

使用 sed 删除最后一行

上文我们介绍了删除特定的某一行,那么怎样删除最后一行呢?

有一种方法是使用 wc 命令来获取文件中的总行数,然后结合 sed 使用。不过,sed 提供了一个专门的方法来删除文件的最后一行,所以我们不需要再获取文件的总行数了。

sed -i '$d' filename.txt

删除多行

与前面介绍的类似,还可以删除文件中的多行。比如,我们要删除文件中的第11行至第15行,那么可以这样:

sed -i '11,15d' filename

上述命令会从文件中删除包括第11行到第15行的内容。

删除包含某字符串的行

使用 sed 命令还可以删除包含给定字符串或与特定模式匹配的所有行。

下面的命令将删除包含单词“string”的所有行:

sed -i '/string/d' filename

注意,上述字符串是区分大小写的。此外,还可以使用正则表达式来代替字符串。

删除以某个单词开头的行

如果要删除以特定单词或字母开头的所有行,只需提供如下正则表达式:

sed -i '/^word/d' filename

删除所有空行

我们今天介绍的最后一个例子,是删除文件中所有的空白行:

sed -i '/^$/d' filename

关于 sed 命令,它的使用方法还有很多,大家有兴趣可以查看一下 man 手册。后续我们也会再单独介绍一下。

以上就是本次分享全部内容,欢迎讨论。

来源:TIAP内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯