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. springboot集成themeleaf报Namespace 'th' is not bound

    <!DOCTYPE html><!--解决th报错 --><html lang="en" xmlns:th="http://www.w3.o ...

  2. FREERTOS学习笔记

    2012-02-25 21:43:40 为提升自己对实时操作系统(RTOS)的认识,我学习了freeRTOS. 理解了OS任务的状态.优先级的概念.信号量的概念.互斥的概念.队列.内存管理.这都是和R ...

  3. 融云通信云发力教育行业 助在线教育"风口"继续腾云

    4 月 16 日,2019 年AI 在线教育大会在北京站圆满落幕,会上云集超过500位资深教育从业者.200 家机构,共同就 AI 教育落地.在线教育应用经验等主题开展深入探讨.云通信领域的领导企业融 ...

  4. IDEA 热部署设置(JRebel插件激活)

    参考原文链接:https://blog.csdn.net/feidi7783/article/details/80607374

  5. 操作redis

    数据库分为: 1)传统的关系型数据库 mysql.oracle.sql server.sqllie.db2 id name passwd cratetime stu 特点: a 数据存在磁盘上 b 使 ...

  6. nginx + keepalived 主从模式

    转自:https://www.cnblogs.com/kevingrace/p/6138185.html 负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可 ...

  7. Charles 抓包工具(新猿旺学习总结)

    Charles 抓包工具安装机操作 1.Charles 抓包工具是代理服务器工具,可以拦截数据,进行更改,返回数据,以实现前端后台的请求和响应数据的测试2.Charles 菜单介绍 Charles抓包 ...

  8. Leetcode 树(102, 637)

    637: 二叉树的层平均值 给定一个非空二叉树,返回一个由每层节点平均值组成的数组: https://leetcode-cn.com/problems/average-of-levels-in-bin ...

  9. scrapy的splash 的简单使用

    安装Splash(拉取镜像下来)docker pull scrapinghub/splash安装scrapy-splashpip install scrapy-splash启动容器docker run ...

  10. Apache Maven 3.6.1配置安装

    Apache Maven 3.6.1配置安装 一.下载 maven下载地址:http://maven.apache.org/download.cgi 二.安装 1,解压即可用 2,环境变量配置 MAV ...