linux 文本 处理 三剑客 之 sed 命令

sed命令的定义

在这里插入图片描述
原来的内容是在磁盘当中放着,现在用sed命令处理的时候将内容掉入内存的一个地方用户处理,这个处理空间也叫模式空间.

sed命令可以处理文件中的数据或者用户输入的数据。

sed命令比交互式的编辑器快很多。

sed命令选项

在这里插入图片描述

语法及动作说明

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

参数说明:

-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
-h或--help 显示帮助。
-n或--quiet或--silent 仅显示script处理后的结果。
-V或--version 显示版本信息。

动作说明

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

几种调用sed的方式

在命令行调用sed

在这里插入图片描述

-e在一个命令行调用多个编辑器

中间用分号割开
在这里插入图片描述
sed命令只是改变了输出内容,没有改变文件内容
在这里插入图片描述

-f 在文件中调用编辑器

在这里插入图片描述

s替换命令

sed 's/要被取代的字串/新的字串

在这里插入图片描述

脚本替换中的几个替换标记

默认情况下只能替换一行中的第一个匹配的

在这里插入图片描述

g 替换文本中每处匹配模式

在这里插入图片描述

数字(例如2)

只替换每行第2次出现的匹配模式
在这里插入图片描述

p 结合-n 只输出被命令修改过的行

在这里插入图片描述

w 将输出保存在文件中(包含操作替换的行)

在这里插入图片描述在这里插入图片描述

替换字符

\ ! #  都可对特殊符号进行转义,习惯用哪个就用哪个

(1)
在这里插入图片描述(2) !
在这里插入图片描述(3) #
在这里插入图片描述

行寻址

如果想让命令只作用在指定的行
在这里插入图片描述在这里插入图片描述

组合命令

在这里插入图片描述在这里插入图片描述

正则表达式

某行开始到结尾的所有行
在这里插入图片描述

删除行

没有改变源文件的内容,只是删除了输出内容
在这里插入图片描述
删除第三行数据
在这里插入图片描述删除第二三行
在这里插入图片描述删除第三行到结尾
在这里插入图片描述删除第一行数
在这里插入图片描述与正则表达式结合
在这里插入图片描述

插入数据(i,a)

i 在指定行前插入新的行

在这里插入图片描述

a在指定行后追加新的行

在这里插入图片描述

对文件的指定行插入

在这里插入图片描述在这里插入图片描述

将新行插入在多行数据流末尾

在这里插入图片描述

在第一行之前插入多行数据

在这里插入图片描述

修改某行的数据©

在这里插入图片描述在这里插入图片描述在这里插入图片描述一次改变好几个,而不是一个一个去改变.

替换命令(y)

唯一一个可以处理单个字符的sed命令
在这里插入图片描述

y 替换单个字符

它会替换转换命令要求替换的所有实例,不会考虑它们出现的位置
在这里插入图片描述

打印行 p

在这里插入图片描述在这里插入图片描述在这里插入图片描述

打印行号 ‘=’

在这里插入图片描述

sed和文件一起工作

w 向文件中写入指定行

在这里插入图片描述

r 从文件中读取

将一个独立的文件插入到一个数据流中。

在这里插入图片描述在这里插入图片描述

对源文件进行替换

如果需要对源文件进行替换,则加入-i参数即可
-i 表示操作在源文件上生效.否则操作内存中数据,并不写入文件中.
在这里插入图片描述

几个小练习

在这里插入图片描述1.在这里插入图片描述2.
在这里插入图片描述3.
在这里插入图片描述4.
在这里插入图片描述 -n:取消默认输出。注意:sed命令会默认把输入行打印到屏幕上,所以如果想精准的控制输出,就需要-n。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值