Linux 系统操作命令(五)

sed是一个用于流式文本编辑的工具,常用于自动化文本处理任务,如插入、删除、替换和打印文件中的行。文章举例说明了如何使用-e参数执行不同操作,如a、c、d和i命令,以及正则表达式的使用。同时,展示了如何删除或新增特定行,以及在行间插入内容。
摘要由CSDN通过智能技术生成

sed 操作

Linux sed 命令操作

Linux sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

sed [-hnV][-e<script>][-f<script文件>][文本文件]

参数说明

  • -e

动作说明

  • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
  • d :删除,因为是删除啊,所以 d 后面通常不接任何东东;
  • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
  • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
  • s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g 就是啦 !
报错:sed: -e expression #1, char 2: expected \ after `a', `c' or `i'

# 增加内容信息
sed -e 4a\newLine testfile 

以行为单位的新增/删除

testfile 的内容列出并且列印行号,同时,请将第 2~5 行删除!

$ nl testfile | sed '2,5d'
     1  HELLO LINUX!  
     6  Taobao
     7  Runoob
     8  Tesetfile
     9  Wiki
sed 的动作为 2,5d,那个 d 是删除的意思,因为删除了 2-5 行,所以显示的数据就没有 2-5 行了, 另外,原本应该是要下达 sed -e 才对,但没有 -e 也是可以的,同时也要注意的是, sed 后面接的动作,请务必以 '...' 两个单引号括住喔!

只要删除第 2 行:
nl testfile | sed '2d' 

要删除第 3 到最后一行:
nl testfile | sed '3,$d' 

在第二行后(即加在第三行) 加上drink tea? 字样
nl testfile | sed '2a drink tea'

如果是要在第二行前,命令如下:
nl testfile | sed '2i drink tea' 

如果是要增加两行以上,在第二行后面加入两行字,例如 Drink tea or ..... 与 drink beer?
nl testfile | sed '2a Drink tea or ......\
drink beer ?'
每一行之间都必须要以反斜杠 \ 来进行新行标记。上面的例子中,我们可以发现在第一行的最后面就有 \ 存在

以行为单位的替换与显示
将第 2-5 行的内容取代成为 No 2-5 number 呢?
nl testfile | sed '2,5c No 2-5 number'
nl testfile | sed -n '5,7p'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值