Linux文本处理之sed文本编辑器

一、什么是sed文本编辑器?

SED是一项Linux指令,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大
sed用来操作纯 ASCII 码的文本
处理时 , 把当前处理的行存储在临时缓冲区中 , 称为“模式空间” (pattern space) ,可以指定仅仅处理哪些行
sed 符合模式条件的处理,不符合条件的不予处理,处理完成之后把缓冲区的内容送往屏幕
接着处理下一行 , 这样不断重复 , 直到文件末尾
原来的内容是在磁盘当中放着,现在用sed命令处理的时候将内容掉入内存的一个地方用户处理,这个处理空间也叫模式空间
sed:功能强大的流式文本编辑器

二、sed的应用

2.1 sed命令格式

调用 sed 命令有两种形式
sed     [options]       'command' file(s)
sed     [options]   -f   scriptfile file(s)

2.2 sed对字符的处理

在这里插入图片描述

2.3 p 模式操作(按照要求显示行)

sed -n '/\:/p' fstab
sed -n '/UUID$/p' fstab
sed -n '/^UUID/p' fstab		比较加不加-n的区别
sed -n '2,6p' fstab
sed -n '2,6!p' fstab

在这里插入图片描述

2.4 d 模式操作(按照要求删除行)

sed  '/^UUID/d' /etc/fstab   删除以UUID开头的这一行
sed  '/^#/d' /etc/fstab		删除以#开头的内容
sed  '/^$/d'/etc/fstab			删除多余空行的内容
sed   '2,4d'/etc/fstab		删除第2行到第4行内容
sed   '2d;4d'/etc/fstab	删除第2行和第4行内容
sed  –n '/^UUID/!d' /etc/fstab	删除时不显示多余内容

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

2.5 a 模式操作(按照要求添加)

sed '/^UUID/a \hello sed /etc/fstab 	在UUID这一行后面添加
sed '/^UUID/a \hello sed\nwestos /etc/fstab'  在UUID这一行添加时换行

在这里插入图片描述

2.6 i 模式操作(按照要求插入行)

sed '/^UUID/i\hello sed\nwestos /etc/fstab'	在UUID这一行前面插入(\n 换行)

在这里插入图片描述

2.7 c 模式操作(按照要求改变行)

sed '/^UUID/c\hello sed\nwestos /etc/fstab'		更改以UUID开头这一行内容为hello....

在这里插入图片描述

2.8 w 模式操作(按照要求写入行)

sed  '/^UUID/w /mnt/chen1' /etc/fstab		将UUID开头的这一行写入/mnt/chen1这个文件
sed -n  '/^UUID/w /mnt/chen1' /etc/fstab	加入-n不显示其他
sed  '/^UUID/='/etc/fstab							给UUID开头的添加行号
sed  '6r /etc/issue' /etc/fstab					将目标文添加到源文件的第6行

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

2 .9 sed 的其他用法

sed  -n  '/^UUID/=' fstab
sed  -n -e ‘/^UUID/p'    -e    '/^ UUID/=' fstab			-e起到;的作用
sed   -e 's/brown/green/; s/dog/cat/' data
sed  -f rulesfile file
sed  's/^\//#/'/etc/fstab
sed  's@^/@#@g'/etc/fstab
sed  's/\//#/'/etc/fstab
sed  's/\//#/g/'/etc/fstab
sed  'G' data
sed  '$!G' data
sed  '=' data | sed 'N; s/\n/ /'
sed -n '$p' data

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值