sed命令学习

sed编辑器,处理文本过程如下:

sed把当前处理的行保存在一个临时缓冲区中,然后处理缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后下一行读入,处理和显示。处理完输入文件的最后一行后,sed便结束运行。

sed [参数] '命令' file

sed中模式空间(临时)和保持空间

 

 

passwd代表文件名

1,查询语句 

输出第三行

 sed -n '3p' passwd

输出第3 到5行

 sed -n '3,5p' passwd

删除第3到5行

 sed -n '3,5d' passwd

表示查询出passwd文件中存在sbin字符的所有行并打印出来,其中两个/表示的是其中的是正则表达式,-n和/p是该命令的参数,需要联合使用:

sed -n ‘/sbin/p’ passwd 

 

2,紧跟在s命令后的字符就是查找串和替换串之间的分隔符。分隔符默认为正斜杠,但可以改变。无论什么字符(换行符、反斜线除外),只要紧跟s命令,就成了新的串分隔符:

head -3 passwd | sed 's#bin#Replace#g

sed -n '1,3s' 's#bin#Replace#g' passwd

e选项:用于sed执行多个指令,指令放置顺序对最终结果有影响

 head -5 passwd | sed -e '1,3d' -e 's/sh/Replace/g'

r命令:当匹配到bin时,就读入文件的内容

head -3 passwd | sed '/bin/r append.txt'

w命令:匹配到时,写入到文件中

sed -n '/hrwang/w me.txt' datafile

a\命令:匹配到时追加到文件中

sed '/^hrwang/a\ append this line to file datafile

q命令:q命令将导致sed程序退出,不再进行其它的处理

sed '/hrwang/{s/hrwang/HRWANG/;q;}' datafile

 

3,sed命令:没有重定向不会真正修改源文件中的内容。sed不会更改文件内容

  重定向指令为 >

  或者使用指令 -i, 直接修改文件内容,不过-i会额外添加一行,造成误解,不可用

 

4,新增语句:

  sed '1a the content append to file' passwd

  sed '1i the content inset to the forward of first line' passwd

  sed '1c replace the first line of file to this content' passwd

  sed 's/false/true/' passwd # replace false in this line to true

  sed '/hello/aworld' mk ##a代表指定行后增加新行

  sed 's/hello/hello world/g' mk

  sed 's/hello/hello\nworld/g' mk

 

 

5 删除语句:

  sed '/postgres/d' passwd # delete the line suit this rule

  sed '2d' passwd # delete the second line

  sed '/^UUID/d' mk

  sed '/^$/d' mk

 

6 替换语句:

  修改并修改文件

  sed  -i '/s/cpu_core=8/cpu_core=72/' mk 

  如果使用 ‘s/cpu_core=8/cpu_core=72/p' mk 此行后会新加一行cpu_core=72;

  如果末尾加g,说明是全局替换

  sed -i 's/westos/redhat/g' passwd

  整行替换

  sed '/hello/chello world' mk

  使用i命令向数据流插入文本行,i命令会在指定行前增加一个新行

  sed '/hello/iworld\nlee' mk

 

7 打印文本:

  sed -n '/\:/p' mk

  sed -n '/^#/p' mk

  sed -n '/^#/!p' mk

  sed -n '1~2p' mk ##打印奇数行

  sed -n '2~2p'  mk ##打印偶数行

 

8 参数:

  -e 默认情况:在处理输入时。sed后面直接添加编辑命令

  当一条sed中执行多个编辑命令时,-e才有意义,且不可省略,其他无意义

  -n参数:不会把缓冲区内容输入到屏幕上,结合p指令使用,只输出匹配的行

   sed -n '/^#/p' lee_temp #输出以#开头行

   sed -n '/n$/p' lee_temp #输出以n结尾行

   sed -n 's///gp' #加g与不加g的区别是,加g意味着全行进行指令操作,不加的话,只将指令运用于第一个匹配到的位置

 

转载于:https://www.cnblogs.com/lixiangfu/p/11207567.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361809.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Spring Boot应用程序中测试邮件代码

在构建Spring Boot应用程序时,您可能会需要添加邮件配置。 实际上,在Spring Boot中配置邮件与在Spring Bootless应用程序中配置邮件没有太大区别。 但是,如何测试邮件配置和提交工作正常? 我们来看一下。 我假设我们有一个引导的…

CSS基础语法(三) CSS的6种特性

样式表常用写法及特性(组合、继承、关联性、权值性、层叠性、重要性) 1.样式的组合:把具有相同声明定义的选择符组合在一起,并用逗号隔开。-例如:段落元素p、单元格元素td和类c1可以使用相同样式&#xff…

卷积,DFT,FFT,图像FFT,FIR 和 IIR 的物理意义

卷积: 冲击信号会对线性系统产生冲击响应。 冲击信号可分解为平移度和幅度。其对线性系统的冲击响应可以分解为点点间的经平移和缩放的各个冲击响应的累加,通过卷积的表达式表示。 所谓的冲击响应,就是线性系统对任何输入信号的响应&#xff…

洛谷P2822 组合数问题

分析&#xff1a; 首先预处理出来&#xff0c;杨辉三角二维前缀和 代码&#xff1a; #include<cstdio> using namespace std; long long f[2005][2005],sum[2005][2005]; int main() {long long T,k;scanf("%lld%lld",&T,&k);for(long long i0;i<20…

es6笔记

es6对象浅复制&#xff1a; 字符串大小比较&#xff1a; 如果是汉字&#xff1a;a.charCodeAt() > b.charCodeAt() //使用carCodeAt将器转为asci码&#xff0c;在进行比较 如果是非汉字的字符串&#xff1a;直接比较或者使用上面的转码比较都可以。 如果是日期比较&#xff…

毕业设计上线啦!----跳蚤部落与基于Comet的WebIM系统开发

我不清楚把我的毕业设计的东西放上来之后&#xff0c;毕业论文答辩的时候会不会说我是在网上抄袭的&#xff0c;不过我还是果断的发上来与大家分享了&#xff01;&#xff01;呵呵&#xff0c;请大家支持&#xff01;高手就绕道吧&#xff01; 现在已经放到公网上&#xff0c;并…

poj2032Square Carpets(IDA* + dancing links)

题目请戳这里 题目大意:给一个H行W列的01矩阵,求最少用多少个正方形框住所有的1. 题目分析:又是一个红果果的重复覆盖模型.DLX搞之! 枚举矩阵所有的子正方形,全1的话建图.判断全1的时候,用了一个递推,dp[i][j][w][h]表示左上角(i,j)的位置开始长h宽w的矩形中1的个数,这样后面可…

使用Spring Security保护REST服务

总览 最近&#xff0c;我正在一个使用REST服务层与客户端应用程序&#xff08;GWT应用程序&#xff09;进行通信的项目中。 因此&#xff0c;我花了很多时间来弄清楚如何使用Spring Security保护REST服务。 本文介绍了我找到的解决方案&#xff0c;并已实现。 我希望此解决方案…

http请求post,返回excel文件,并接收

1.post的方法里要加responseType: arraybuffer参数&#xff0c;不然下载的excel会乱码 2.使用{type: "application/vnd.ms-excel"}的写法&#xff0c;可以保存为xls格式的excel文件&#xff08;兼容老版本&#xff09;。而使用“application/vnd.openxmlformats-off…

linux图形开发工具

请见:http://hi.baidu.com/jjzhang166/blog/item/b8dfb6ecd5fc6e2d62d09f9e.html 转载于:https://www.cnblogs.com/vilyLei/archive/2011/12/12/2284869.html

具有Overlord的WildFly 8.1中的API管理

昨天&#xff0c;我简要介绍了霸王项目家族。 今天该试驾了。 API管理子项目两天前发布了1.0.0.Alpha1&#xff0c;并根据18个月的路线图介绍了第一组功能。 APIMan到底是什么&#xff1f; 它是一个API管理系统&#xff0c;可以嵌入现有框架或应用程序中&#xff0c;甚至可以作…

设计模式学习笔记-代理模式

1. 概述 为其它对象提供一种代理以控制对这个对象的访问。 解决的问题&#xff1a;如果直接访问对象比较困难&#xff0c;或直接访问会给使用者或系统带来一系列问题。这样对于客户端&#xff08;调用者&#xff09;来说&#xff0c;就不需要直接与真实对象进行交互&#xff0c…

Tomcat配置自签名https

从JDK中找到keytool.exe&#xff0c;随便复制到一个方便的目录&#xff0c;在命令行中进入这个目录。 第一步&#xff1a;为服务器生成证书 tomcat.keystore&#xff0c;名字就是域名&#xff0c;其他的看着写。 keytool -genkey -v -alias tomcat -keyalg RSA -validity 3650…

MFC学习之路之多媒体 --(1) DirectShow

可以说整个Windows的多媒体编程都是以DirectShow为基础&#xff0c;那好&#xff0c;来吧&#xff0c;我们直接看DirectShow的一段基础代码。 bool Mp3::Load(LPCWSTR szFile) {Cleanup();ready false;if (SUCCEEDED(CoCreateInstance( CLSID_FilterGraph,NULL,CLSCTX_INPROC_…

使用反射处理Java批注

在上一篇有关Java注释的文章中&#xff0c;我概述了一个最近的用例&#xff0c;并为您提供了一些自定义注释的示例以及如何使用它们。 在本文中&#xff0c;我将更进一步&#xff0c;并为您提供一些自定义注释的示例&#xff0c;以及如何使用Java Reflection API处理这些自定义…

Excel 2007 Open XML文件结构(2)

Excel 2007 Open XML文件结构&#xff08;2&#xff09; 在以上文件中&#xff0c;根据<sheet>元素中r:id属性的值可得到工作表数据的XML文件。例如&#xff0c;在workbook.xml文件中名为工作表1的工作表的r:id属性为rld1&#xff0c;在以上文件中根据ID找到以下代码&…

Vue.js最佳实践

Vue.js最佳实践 第一招&#xff1a;化繁为简的Watchers 场景还原&#xff1a; created(){this.fetchPostList() },watch: {searchInputValue(){this.fetchPostList()} } 组件创建的时候我们获取一次列表&#xff0c;同时监听input框&#xff0c;每当发生变化的时候重新获取一…

Api demo源码学习(8)--App/Activity/QuickContactsDemo --获取系统联系人信息

本节通过Content Provider机制获取系统中的联系人信息&#xff0c;注意这个Anctivity直接继承的是ListActivity&#xff0c;所以不再需要setContentView函数来加载布局文件了&#xff08;我自己新建一个项目来跑这个anctivity时在这里卡了半天&#xff09;。 在AndroidManifest…

游戏大厅 从基础开始(6)--绕回来细说聊天室(中)之女仆编年史1

上一篇我们大致的了解了几种聊天室的行为模式 最简单明了的推模式 几乎不需要任何多余的语言来描述它的实现 这一篇我们看看如何实现拉模式更有效。 本图清晰的表现了"拉"模式聊天室的行为。 并发多用户向数据池写数据 并发多用户从数据池读书据 数据最好以时间为…

开发自上而下的Web服务项目

这是从Alessio Soldano编辑的Advanced JAX-WS Web Services手册中摘录的示例章节。 第一章介绍了自底向上创建Web服务端点的方法。 它允许非常快地将现有bean作为Web Service端点公开&#xff1a;在大多数情况下&#xff0c;将类转换为端点只需在代码中添加少量注释即可。 但…