a(a\或者a\\):在当前行后面加入一行文本
sed '/^test/a---->this is a example2' example 
在test开头的行下,添加一行新的文本“---->this is a example2”

d 删除
D 删除模板的第一行
i 在当前行上面插入文本
h 拷贝模板块的内容到内存中的缓冲区。
H 追加模板块的内容到内存中的缓冲区
g 获得内存缓冲区的内容,并替代当前模板块中的文本。
G 获得内存缓冲区的内容,并追加到当前模板块文本的后面。
l 列表不能打印字符的清单。
n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
N 追加下一个输入行到模板块后面并在二者间嵌入一个新行,改变当前行号码。
p 打印模板块的行。
P(大写)
q 退出Sed。
r file:从file中读行。
t label:if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
T label:错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。
w file:写并追加模板块到file末尾。
W file:写并追加模板块的第一行到file末尾。

替换标记
g表示行内全面替换。
p表示打印行。
w表示把行写入一个文件。
x表示互换模板块中的文本和缓冲区中的文本。
y表示把一个字符翻译为另外的字符(但是不用于正则表达式)

元字符集
^ 锚定行的开始 如:/^sed/匹配所有以sed开头的行。 
$ 锚定行的结束 如:/sed$/匹配所有以sed结尾的行。 
. 匹配一个非换行符的字符 如:/s.d/匹配s后接一个任意字符,然后是d。 
* 匹配零或多个字符 如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。 
[]匹配一个指定范围内的字符,如/[Ss]ed/匹配sed和Sed。 
[^]匹配一个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。 
\(..\) 保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers。 
& 保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。 
\< 锚定单词的开始,如:/\<love/匹配包含以love开头的单词的行。 
\> 锚定单词的结束,如/love\>/匹配包含以love结尾的单词的行。 
x\{m\} 重复字符x,m次,如:/0\{5\}/匹配包含5个o的行。 
x\{m,\} 重复字符x,至少m次,如:/o\{5,\}/匹配至少有5个o的行。 
x\{m,n\} 重复字符x,至少m次,不多于n次,如:/o\{5,10\}/匹配5--10个o的行

d 删除第二行到末行:sed '2,$d' example
s 替换以192.168.0.1开头的行为192.168.0.1localhost:sed 's/^192.168.0.1/&localhost/' example
逗号 选定行范围,选定处于test和check行之间的行,并将结尾替换成sed test:sed '/test/,/check/s/$/sed test/' example
e 多步编辑,先删除1到5行,在替换test为check:sed -e '1,5d' -e 's/test/check/' example
r 从文件读入,注意读入的文件后面没有斜杠: sed '/test/r file2' example(如果example里有匹配test的行,则将读入的file2写在匹配行的下面。如果有多行匹配,则全部附加一遍)
w 写入文件 sed -n '/test/w file3' example(如果example里有匹配test的行,则将匹配到的行写入file3文件里。不匹配的行不写入。)
a 追加内容 sed '/^test/a\--->this is a example' example(将内容追加到匹配的行的下一行位置)
i 插入内容 sed '/test/i\new line-------------------------' example(将内容插入到匹配的行的上一行位置)

什么时候把这句看懂了基本上就不是sed命令菜鸟了:sed 's/^\([^:]*\):\(*\) \([* ]*\)/\1:\3, \2/' < example2 > example

留下参考:

#!/bin/sh
u1=/tmp/user.$$
p1=/tmp/person.$$
o1=/tmp/office.$$
t1=/tmp/telephone.$$

trap "exit 1"
trap "rm -f $p1 $o1 $t1 $u1" exit

awk -F: '{ print $1 ":" $5 }' > $u1

sed -e 's=/.*==' \
    -e 's=^\([^:]*\):\(.*\) \([^ ]*\)=\1:\3, \2=' < $u1 | sort > $p1
sed -e 's=^\([^:]*\):[^/]*/\(^/*\)/.*$=\1:\2=' < $u1 | sort > $o1
sed -e 's=^\([^:]*\):[^/]*/[^/]*/\([^/]*\)=\1:\2=' < $u1 |sort > $t1

join -t: $p1 $o1 | 
    join -t: - $t1 | 
        cut -d: -f 2- | 
           sort -t: -k1,1 -k2,2 -k3,3 | 
               awk -F: '{ printf("%-39s\t%s\t%s\n", $1, $2, $3) }'

linux命令三剑客之一sed的更多相关文章

  1. 005 Linux 命令三剑客之-sed

    grep:数据查找定位 awk:数据切片,数据格式化,功能最复杂 sed:数据修改 01 Linux 命令三剑客? 三剑客各有所长,和锅锅一一搞起就是了! sed:擅长数据修改. grep:擅长数据查 ...

  2. 007 Linux 命令三剑客之-awk

    01 一起来认识 awk! Linux 命令三剑客,sed.grep.awk. sed:擅长数据修改. grep:擅长数据查找定位. awk:擅长数据切片,数据格式化,功能最复杂. awk 更适合格式 ...

  3. 常用文本处理命令 & 三剑客之 sed

    今日内容 文本处理命令 Linux 三剑客之 sed 内容详细 文本处理命令 1.sort : 文件内容排序 默认按照文件隔行内容的第一个字符大小进行排序(默认是升序) 默认输出文本结果 sort [ ...

  4. Linux 文本三剑客之 sed

    Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...

  5. Linux命令学习-sed

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

  6. linux命令详解——sed

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

  7. 001 研发同学必学哪些 Linux 命令?

    01 研发同学为啥要掌握 Linux 命令? 身为研发同学,Linux 是绕不过去的一个小山包,不是说要掌握的十分精通,在程序员界里做个极客,也不是说要抢了 Devops 同学的饭碗,但至少要做到摆脱 ...

  8. 文本处理命令(sort+uniq+cut+tr+wc)+三剑客之sed

    目录 文本处理命令+三剑客之sed 一.文本处理命令 1.排序命令 sort 2.检查/删除命令 uniq 3. cut 显示特定部分命令 4. 替换或删除命令 tr 5.统计 计算数字命令 wc 二 ...

  9. Linux实战教学笔记12:linux三剑客之sed命令精讲

    第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...

随机推荐

  1. spoj 1029 Matrix Summation

    题意: 对一个矩阵有2种操作: 1.把某个元素设为x. 2.查询以(x1,y1)为左上角 以(x2,y2)为右上角的矩阵中的数字的和. 思路: 二维树状数组入门题,同时对横坐标和纵坐标做前缀和就行了. ...

  2. WTForms

    一.简单介绍flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装: pip3 install wtforms 用户登录简例: fr ...

  3. 编译jmeter5.0源码

    jmeter5.0使用过程中,遇到request或者response乱码的情况,想要一次性解决这个问题,需要编译ApacheJMeter_http.jar这个包(lib\ext文件下)里的Reques ...

  4. drf 单表

    ^_^ # [{title,price},{}] 构造的数据结构 简单的FBV/CBV def showbooks(request): # FBV if request.method =='GET': ...

  5. animate.css 动画的使用

    $('#animatedClose').removeClass().addClass('fadeInDownBig animated').one('webkitAnimationEnd mozAnim ...

  6. 【python】文件处理行与行之间的内容

    在处理文本文件时,很多时候需要我们处理跨行的数据,但是用for循环处理不是很方便,想了一个歪招来处理不是很大的数据. 核心思想就是将上一行的东西存在一个列表里,到下一行用完这个数据在循环体里将列表初始 ...

  7. mysql和oracle分页查询

    MYSQL分页查询 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录.无疑该查询能够实现分 ...

  8. pandas替换一列中的汉字为数字

    表格的一列“总金额”应该全部为数字,但其中少数项出现汉字,应该将汉字替换为数字,才能进行后面的计算. 先定义一个函数: def is_number(s): try: float(s) return T ...

  9. 回车\r与换行\n

    在计算机出现之前,有一种电传机械打字机,每秒可以打10个字符.但是有一个问题,就是打满一行后,需要进行换行,换行是需要0.2秒.如果这时有字符传入,就会丢失两个字符.为了解决这个问题,便定义了两个字符 ...

  10. 工作中常用的 Shell 命令及技巧

    调试 bash 脚本的技巧 加 -x 参数运行 bash 脚本时,会显示执行的语句 # 也可以在 demo.sh 中加上 set -x bash -x demo.sh 设置环境变量,然后通过如上方式运 ...