假设文档内容如下:

[root@localhost ~]# cat /tmp/input.txt
null test

要求:在1111之前添加AAA,方法如下:

sed -i 's/指定的字符/要插入的字符&/'  文件

[root@localhost ~]# sed -i  's/1111/AAA&/' /tmp/input.txt
[root@localhost ~]# cat /tmp/input.txt
null
0000AAA11112222 test

 要求:在1111之后添加BBB,方法如下:

sed -i 's/指定的字符/&要插入的字符/'  文件

[root@localhost ~]# sed -i  's/1111/&BBB/' /tmp/input.txt
[root@localhost ~]# cat /tmp/input.txt
null
0000AAA1111BBB2222 test

要求:(1) 删除所有空行;(2) 一行中,如果包含"1111",则在"1111"前面插入"AAA",在"11111"后面插入"BBB"

[root@localhost ~]# sed '/^$/d;s/1111/AAA&/;s/1111/&BBB/' /tmp/input.txt
null
0000BBB1111AAA2222
test

 要求:在每行的头添加字符,比如"HEAD",命令如下:

[root@localhost ~]# sed -i 's/^/HEAD&/' /tmp/input.txt
[root@localhost ~]# cat /tmp/input.txt
HEADnull
HEAD000011112222
HEAD
HEADtest

 要求:在每行的尾部添加字符,比如"tail",命令如下:

[root@localhost ~]# sed -i 's/$/&tail/' /tmp/input.txt
[root@localhost ~]# cat /tmp/input.txt
HEADnulltail
HEAD000011112222tail
HEADtail
HEADtesttail

说明:
1."^"代表行首,"$"代表行尾
2.'s/$/&tail/g'中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找。

ubuntu@ubuntu-vm:/work/sva/sva-repo$ echo "   <exec>bin/adc</exec>   " | sed 's/.*<.*>\(.*\)<.*>.*/\1/'
bin/adc

s/^..*/\1/g是正则表达式的替换 s/A/B/ 就是A替换B,而A是^..*(^表示行首,和是有特殊用途的,表示把括号中的内容剔除出来,会一次放到\1 \2 \3这些变量中的,若果有多个括号的话,和中见的.表示匹配任意一个字符),这样通过sed 's/^..*/\1/g'内容变成了

提取字符串

现在有如下一串字符串:
"asdfkjasldjkf"shiner"df

需求:
需要提取出shiner子字符串。

命令如下:
[root@localhost /]$ echo "asdfkjasldjkf\"shiner\"df" | sed 's/\(.*\)"\(.*\)"\(.*\)/\2/g'
shiner

命令解释
s: 表示替换命令
\(.*\)" : 表示第一个引号前的内容
"\(.*\)":表示两引号之间的内容
)"\(.*\):表示引号后的内容
\2: 表示第二对括号里面的内容
括号里的表达式匹配的内容,可以用\1,\2等进行引用,第n个括号对内的内容,就用\n引用。

这个命令的意思是:
用\2代表的第二个括号的内容(shiner)去替换整个字符串,这样就得到了我们所需要的子字符串了。

那么就能获取到了18.08。

sed 用法 转https://www.cnblogs.com/Dev0ps/p/8441255.html的更多相关文章

  1. AutoMapper用法 转载https://www.cnblogs.com/youring2/p/automapper.html

    AutoMapper是对象到对象的映射工具.在完成映射规则之后,AutoMapper可以将源对象转换为目标对象. 配置AutoMapper映射规则 AutoMapper是基于约定的,因此在实用映射之前 ...

  2. 企业案例:查找当前目录下所有文件,并把文件中的https://www.cnblogs.com/zhaokang2019/字符串替换成https://www.cnblogs.com/guobaoyan2019/

    企业案例:查找当前目录下所有文件,并把文件中的https://www.cnblogs.com/zhaokang2019/字符串替换成https://www.cnblogs.com/guobaoyan2 ...

  3. 【redis】redis五大类 用法 【转载:https://www.cnblogs.com/yanan7890/p/6617305.html】

    转载地址:https://www.cnblogs.com/yanan7890/p/6617305.html

  4. sed 用法记录

    sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为:         sed ...

  5. [转帖]linux之sed用法

    linux之sed用法 https://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html docker images | awk ' ...

  6. linux 之sed用法

    sed:Stream Editor文本流编辑,sed是一个"非交互式的"面向字符流的编辑器.在使用sed处理时,它把当前处理的行存储在临时缓冲区中,称为"模式空间&quo ...

  7. Python中的logging模块【转】https://www.cnblogs.com/yelin/p/6600325.html

    [转]https://www.cnblogs.com/yelin/p/6600325.html 基本用法 下面的代码展示了logging最基本的用法. 1 # -*- coding: utf-8 -* ...

  8. 【转载】linux之sed用法

    linux之sed用法 原文地址:http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html   sed是一个很好的文件处理工具 ...

  9. linux学习基础6之sed用法详解

    1 sed 又称为流编辑器,它逐行将文本文件中的行读取到模式空间中间去,将符合编辑条件的行进行编辑后输出到显示器上来.默认sed不编辑原文件只处理模式空间中的内容. 2 sed用法 sed [opti ...

随机推荐

  1. 第五模块:WEB开发基础 第1章·HTML&CSS基础

    01-前端介绍 02-HTML介绍 03-HTML文档结构 04-head标签相关内容 05-常用标签一之h1~h6,p,a 06-常用标签一之ul.ol.div.img.span 07-常用标签二- ...

  2. Python列表的深拷贝和浅拷贝

    1. Python列表的拷贝 对于python里面如果想要进行列表的拷贝和复制,具体的操作语句如下: 1) 深拷贝: M=[A,b,a,c] N=M[:] 2) 浅拷贝: N=M 有人说可以直接将M赋 ...

  3. webservice调用天气

    class WebServiceHelper { /// <summary> /// 动态调用WebService /// </summary> /// <param n ...

  4. 原生js常用方法

    原生JavaScript设置cookie值 function setCookie(name, value, Hours) { var d = new Date(); var offset = 8; v ...

  5. Laxcus大数据管理系统2.0(12)- 第十章 运行

    第十章 运行 本章将介绍一些Laxcus集群基本运行.使用情况,结合图片和表格表示.地点是我们的大数据实验室,使用我们的实验集群.数据来自于我们的合作伙伴,软件平台混合了Windows和Fedora  ...

  6. Intro to Probabilistic Model

    概率论复习 概率(Probability) 频率学派(Frequentist):由大量试验得到的期望频率(致命缺陷:有些事情无法大量试验,例如一封邮件是垃圾邮件的概率,雷达探测的物体是一枚导弹的概率) ...

  7. 软件工程 part4 评价3作品

    作品1 抢答器 地址: https://modao.cc/app/ylGTXobcMU7ePNi6tY53gG4iraLl0md评价: 挺好玩,但是字体大小是个缺陷,简单大方. 作品2:连连看 软件工 ...

  8. Java中的线程同步

    Java 中的线程同步问题: 1. 线程同步: 对于访问同一份资源的多个线程之间, 来进行协调的这个东西. 2. 同步方法: 当某个对象调用了同步方法时, 该对象上的其它同步方法必须等待该同步方法执行 ...

  9. iOS- UIPickerView餐厅点餐系统

    在餐厅里的点餐系统的核心控件就是UIPickerView 今天晚上在整理以前的项目笔记时,特意把UIPickerView单独拿出来,做了一个简陋的点餐道具. 因为没有素材图片,所有大家将就看看吧 0. ...

  10. Razor语法和Razor引擎大全

    一.Razor语法 1.Razor的标识符 解释:@字符被定义为Razor服务器代码块的标识符,后面的表示是服务器代码了.web form中使用<%%>中写服务器代码一个道理.在vs工具里 ...