Shell脚本,流式编辑器sed,sed科普,sed数据定位,使用sed根据行号合正则定位文件中的内容

Shell脚本,流式编辑器sed,sed科普,使用sed根据行号合正则定位文件中的内容,

stream Editor:流式编辑器
O、特点:
1、非交互式
2、逐行处理
3、可以对文本进行增删改查等。

一、区别于vim,vim是交互式编辑器,sed是非交互式的,
1、vim对文件的编辑,需要vim打开文件,切换模式,输入内容,保存退出,对文件的改动全程需要用户进行信息交换,是交互式的文本编辑工具。
2、sed对文件的编辑,需要输入sed命令,在命令中确认需要编辑的内容合操作,执行命令就可以完成对文件的修改,对文件的改动是非交互式的,用户只要输入命令就可以,比如:

在这里插入图片描述

二、语法:
sed [选项] ‘[定位符]指令’ 文件名
|sed [选项] '[定位符]指令’

例如:
sed -n ‘3p’ /etc/passwd
sed -n ‘1,3p’ /etc/passwd

-n是屏蔽默认打印全部的意思,如果没有-n,就会把文件的全部内容打印一遍,然后指定行数的内容再次打印一遍,
而且是在打印到原文内容到指定行后紧接着再打印指定行一遍。

-p是print打印的意思,前面的数字是行数,逗号代表从某行到某行。

sed常用的命令选项:
-n 屏蔽默认输出
-i 直接修改源文件
-r 支持扩展正则,默认的sed不支持扩展正则

使用-i可以对源文件进行修改,不使用-i,对文件的修改就只在屏幕上。

三、数据定位,
定位的过程是遍历整个文件并打印到屏幕上,可以使用-n避免将内容打印出来,但是每一次sed都会将文件全部遍历一遍,而不是遍历到符合目标的结果时停止,导致有一定的工作是被浪费了的。

1、行号定位,行号是从1开始的,不是从0开始
sed -n ‘3p’ dir
打印第三行

在这里插入图片描述

sed -n ‘1,3p’ dir
打印1到3行

在这里插入图片描述

sed -n ‘1~3p’ dir
第1行开始,间隔三行打印一次,第1行,第4行,第…3n+1行

在这里插入图片描述

sed -n ‘2~4p’ dir
第2行开始,间隔三行打印一次,第4n+2行,~后面的数字称为步长

在这里插入图片描述

sed -n ‘1,+3p’ dir
打印第一行,和后面的3行,一共4行

在这里插入图片描述

2、正则符号定位
注意:
sed和正则符号配合使用时,正则符号需要用//“包起来”
例如:

在这里插入图片描述

1、一般正则符号,sed -n不需要其他参数
sed -n ‘/^1/p’ dir
打印1开头的

在这里插入图片描述

2、扩展正则符号,grep需要加参数-E的那部分符号,对应的sed加-r的参数,即sed -rn
sed -rn ‘/[0-9]{3,}/p’ dir

注意:
sed与正则符号配合使用时,需要用到//,如果这两个/之间还需要用到/,比如语句
sed -n ‘//KaTeX parse error: Undefined control sequence: \, at position 79: …是,中间那个/前面加一个转义符\̲,̲系统就知道中间那个/需要当作字…/p’ dir

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值