流编辑器:sed
一 简介:
sed是一个精简的、非交互式的流式编辑器,它在命令行中输入编辑命令和指定文件名,然后在屏幕上查看输出。
逐行读取文件内容到临时缓冲区,称为模式空间。接着用sed命令处理缓冲区内容,处理完之后,把缓冲区内容送往屏幕。接着处理下一行
这样不断的重复,直到文件末尾。原文件内容并没有改变。
二 简单的例子:
sed  cmd   输入文件
sed '4,$d' test.in :逐行读取,删除4-最后一行
sed '3q' test.in:处理到第三行的时候退出,也就是前三行原样输出
sed 's/public/PUBLIC/' test.in:将public替换成PUBLIC  (/g替换每行所有的)
sed  -n 's/public/PUBLIC/g' test.in:没有输出 -n阻止输入行自动输出
sed -n 's/public/PUBLIC/p' test.in:输出只有public的行。p命令
三 指定多个命令的三种方法:
用分号隔开:sed 's/public/PUBLIC/;s/north/NPRTH/'  test.in
每个命令前放置-e选项: sed -e 's/public/PUBLIC/'  -e 's/north/NORTH/' test.in
使用分行命令功能,在输入单引号后按Enter回车 键就会多出提示符(>)
sed '
> s/public/PUBLIC/
> s/north/NORTH' test.in
-f:指定sed脚本文件.就是说 s/public/PUBLIC/ s/north/NORTH/等命令配置到test.sed脚本文件中。随便的本文件都可以
sed -f test.sed test.
四 sed命令cmd语法:
sed_cmd:使用格式
[address]sed_edit_cmd (通常用单引号括起来) 其中address为sed的行定位模式,用于指定将要被sed编辑的行。如果省略,sed将编辑所有的行。
sed_edit_cmd为sed对被编辑行将要进行的编辑操作。
address的定位方式:
n:表示第n行
$:表示最后一行
m,n:表示从第m到第n行
/pattern/:查询包含指定模式的行。
/pattern/,n:表示从指定模式到第n行
!:反向选择。如m,n!与m,n相反
例子:
sed -n '$p' test.in:打印最后一行  如果没有-n 原来的文本也会原样输出
sed -n  '/north/p' test.in:包含 /pattern/的行
五 常用的sed_edit_cmd:
p:打印匹配行。  记得-n阻止输出。否则会先按原样打印原来的行
=:显示匹配行的行号  sed -n '/north/=' test.in
d:删除匹配行
sed -n '/public/d' test.in
a\:在。。。行后加行...
i\:在...行之前插入
c\:替换成...
例如:sed '/public/a\AAA\
>BBB\
>CCC' test.in  在public行后加三行AAA BBB CCC 
六 替换命令:
s:替换命令  格式
[address]s/old/new/[gpw]
address:如果省略表示编辑所有行
g:全局替换
p:打印被修改行
w filename:将被替换的行内容写到指定文件
sed -n 's/public/PUBLIC/w data' test.in
sed 's/[0-9][0-9]$/&.5/' datafiel:将两个数字结尾的行匹配成.5结尾 &表示被替换的字符串,就是说在原串结尾加.5
流编辑器:sed的更多相关文章
- Shell 基础 -- 流编辑器 sed 详解
		
一.流编辑器 sed 与命令 sed Linux 中,常使用流编辑器 sed 进行文本替换工作.与常使用的交互式编辑器(如vim)不同,sed 编辑器以批处理的方式来编辑文件,这比交互式编辑器快得多, ...
 - 流编辑器sed
		
sed与grep一样,都起源于老式的ed编辑器,因其是一个流编辑器(stream editor)而得名.与vi等编辑器不同,sed是一种非交互式编辑器(即用户不必参与编辑过程),它使用预先设定好的编辑 ...
 - 快速理解linux流编辑器sed命令
		
原创 杜亦舒性能与架构 之前介绍过 awk 命令,sed 命令同样是非常重要的文本处理工具,涉及到linux shell开发时,几乎是避不开这两大利器的 sed 是 stream editor 的简写 ...
 - shell脚本学习笔记 (流编辑器sed)
		
sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用很普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出. sed不 ...
 - 流编辑器sed知识点总结
		
sed(流文本编辑器) 每次读取一行到模式空间中, 修改的sed模式空间中的内容,并不会修改源文件, 继而输出模式空间的内容, 最后删除模式空间中的内容. sed [O ...
 - Linux下的sed流编辑器命令详解
		
sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内 ...
 - SED单行脚本快速参考(Unix 流编辑器)(转)
		
sed.sourceforge.net被封杀,特在此处贴上官方的sed 使用说明文档 SED单行脚本快速参考(Unix 流编辑器) 2005年12月29日 英文标题:USEFUL ONE-LINE S ...
 - Linux sed 流编辑器
		
sed是stream editor的简称,也就是流编辑器.盗用一张图片解释原理 命令格式: SYNPPSIS: sed [OPTION]… {script-only-if-no-other-scrip ...
 - SED单行脚本快速参考(Unix 流编辑器)
		
------------------------------------------------------------------------- SED单行脚本快速参考(Unix 流编辑器) 200 ...
 - centos 正则,grep,egrep,流式编辑器 sed,awk -F 多个分隔符  通配符 特殊符号. * + ? 总结  问加星 cat -n  nl  输出文件内容并加上行号 alias放~/.bash_profile 2015-4-10 第十三节课
		
centos 正则,grep,egrep,流式编辑器 sed,awk -F 多个分隔符 通配符 特殊符号. * + ? 总结 问加星 cat -n nl 输出文件内容并加上行号 alias放~ ...
 
随机推荐
- Python数据类型---数值类型
			
一.整数(Integer)简称Int,又称整型,由正整数.负整数.0构成,不包括小数,分数. a,b=1,2 #一种赋值方法,此时a=1,b=2 print(a+b) #加法 3 print(a-b) ...
 - 题解:SDOI2017 新生舞会
			
题解:SDOI2017 新生舞会 Description 学校组织了一次新生舞会,Cathy 作为经验丰富的老学姐,负责为同学们安排舞伴. 有 \(n\) 个男生和 \(n\) 个女生参加舞会.一个男 ...
 - rs485转以太网转换器
			
rs485转以太网转换器ZLAN5103 实现RS485转以太网(即485转网口)主要一个硬件转换器和一个软件驱动.硬件转换器分为两种:串口服务器(串口联网服务器.串口通信服务器).串口联网模块.RS ...
 - pytest文档53-命令行实时输出错误信息(pytest-instafail)
			
前言 pytest 运行全部用例的时候,在控制台会先显示用例的运行结果(.或F), 用例全部运行完成后最后把报错信息全部一起抛出到控制台. 这样我们每次都需要等用例运行结束,才知道为什么报错,不方便实 ...
 - 【C语言/C++编程学习笔记】:通俗易懂讲解 - 链表!学不会?不存在的!
			
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
 - linux(centos8):安装配置consul集群(consul 1.8.4 | centos 8.2.2004)
			
一,什么是consul? 1,Consul 是 HashiCorp 公司推出的开源软件,用于实现分布式系统的服务发现与配置. Consul 是分布式的.高可用的. 可横向扩展的 2,官方网站: h ...
 - spring boot:spring security用mysql实现动态权限管理(spring boot 2.3.3)
			
一,动态权限管理的优点和缺点 1,优点: 因为控制权限的数据保存在了mysql或其他存储系统中, 可以动态修改权限控制,无需改动代码和重启应用, 权限变更时灵活方便 2,缺点: 权限的设置需要保存在 ...
 - 《Kafka笔记》3、Kafka高级API
			
目录 1 Kafka高级API特性 1.1 Offset的自动控制 1.1.1 消费者offset初始策略 1.1.2 消费者offset自动提交策略 1.2 Acks & Retries(应 ...
 - Linux创建用户时让每个用户家目录中自带说明文档
			
新用户创建时模板文件放在/etc/skel中,只要在skel中放入相应文档,即可在创建用户时在其家目录中产生对应文档 [00:30:48 root@C8[ ~]#ll -a /etc/skel/ ## ...
 - MVC注册
			
前言 最近没什么写的,写个MVC注册巩固一下 HTML @{ Layout = null; } <!DOCTYPE html> <html> <head> < ...