【转载于58同城沈剑】

1.简介

sed是一种行编辑器,它一次处理一行内容。

2.sed调用方式

sed [options] 'command' file(s)

sed [options] -f scriptfile file(s)

第一种直接在命令行中执行,第二种把命令写到了脚本中,二者无本质区别。

示例(1):打印hello.txt的内容

sed -n p hello.txt

说明:

-n:sed会在处理一行文本前,将待处理的文本打印出来,-n参数关闭了这个功能

p:命令表示打印当前行

hello.txt:待处理的文件

这个指令相当于cat

3.定址

告诉sed你期望处理的行,由逗号分隔的两个数字表示,$符号表示最后一行;

当然也可以使用正则来定位期望处理的行。

示例(2):打印hello.txt的第二行到最后一行

sed -n '2,$'p hello.txt

示例(3):打印hello.txt中正则匹配"100"的行

sed -n '/100/'p hello.txt

4.基本命令

hello.txt的内容为

1 2 3

10 20 30

100 200 300

命令:a\

在匹配行的后面加入一行文本

示例(4)匹配100的行,后面加入一行"new line"

sed '/100/'a\ "new line" hello.txt

输出内容为:

1 2 3

10 20 30

100 200 300

new line

命令:i\

在匹配行的前面加入一行文本

示例(5)匹配100的行,前面加入一行"new line"

sed '/100/'i\ "new line" hello.txt

输出内容为:

1 2 3

10 20 30

new line

100 200 300

命令:c\

将匹配行替换为目的行

示例(5)匹配100的行,替换为"new line"

sed '/100/'c\ "new line" hello.txt

输出内容为:

1 2 3

10 20 30

new line

命令:d

将匹配行删除

示例(5)删除匹配100的行

sed '/100/'d hello.txt

输出内容为:

1 2 3

10 20 30

命令:s

将匹配行替换

详细命令为:s/pattern-to-find/replacement-pattern/g

pattern-to-find:被替换的串

replacement-pattern:替换成这个串

g:全部替换,默认只替换匹配到的第一个

示例(5)讲100替换为hello

sed 's/100/hello/g' hello.txt

输出内容为:

1 2 3

10 20 30

hello 200 300

5.元字符集

^:匹配一行的开始

$:匹配一行的结束

.:匹配某个字符

[abc]:匹配指定范围字符

6.实用命令

匹配以10开头的行,并替换为yes,并输出

sed -n 's/^10/yes/p' hello.txt

输出内容为:

yes 20 30

yes0 200 300

取出文件中行手的行号与冒号

设hello.txt的内容为

1:#!/bin/sh

2:cat hello.txt

3:exit

sed -n -e 's/^[0-9]\{1,\}://g'p hello.txt

输出结果为:

#!/bin/sh

cat hello.txt

exit

一分钟sed入门的更多相关文章

  1. 21分钟 MySQL 入门教程(转载!!!)

    21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...

  2. 2016windows(10) wamp 最简单30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world

    2016最简单windows(10) wamp 30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world thrift是什么 最简单解释 thrift是用来帮助各个编程语 ...

  3. SED入门

    使用Linux多年,SED和AWK两大神器却始终无法得心应手的来提高自己的工作效率,每每需要查找替换,都要依赖于ST2等一众图形工具,深感愧疚,乃专门抽时间学习之,志在使之真正成为左右手.   SED ...

  4. 一分钟快速入门openstack

    一.它是什么,能干什么想认识一个事物,必须先弄明白它是什么,能干什么.首先说一下,openstack是一个搭建云平台的一个解决方案,说他不是个软件,但是我觉得说是一个软件,能够让大家认识更清晰些.op ...

  5. Vue.js——60分钟快速入门(转)

    vue:Vue.js——60分钟快速入门 <!doctype html> <html lang="en"> <head> <meta ch ...

  6. Vue.js 60 分钟快速入门

    Vue.js 60 分钟快速入门 转载 作者:keepfool 链接:http://www.cnblogs.com/keepfool/p/5619070.html Vue.js介绍 Vue.js是当下 ...

  7. 不会几个框架,都不好意思说搞过前端: Vue.js - 60分钟快速入门

    Vue.js——60分钟快速入门   Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理 ...

  8. Mysql学习总结(12)——21分钟Mysql入门教程

    21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...

  9. 60 分钟极速入门 PyTorch

    2017 年初,Facebook 在机器学习和科学计算工具 Torch 的基础上,针对 Python 语言发布了一个全新的机器学习工具包 PyTorch. 因其在灵活性.易用性.速度方面的优秀表现,经 ...

随机推荐

  1. 【CZY选讲·吃东西】

    题目描述 一个神秘的村庄里有4家美食店.这四家店分别有A,B,C,D种不同的美食.LYK想在每一家店都吃其中一种美食.每种美食需要吃的时间可能是不一样的.现在给定第1家店A种不同的美食所需要吃的时间 ...

  2. 通过RHN网站给RHEL打补丁

    [root@yum01 ~]# yum list-sec securityLoaded plugins: downloadonly, product-id, rhnplugin, security, ...

  3. AGC023E - Inversion

    Description \(n \le 2*10^5\) 给定限制序列 \(A\) 求满足 \(P_i\le A_i\) 的所有排列中 逆序对个数的和 Solution 考虑知道一个 \(A\) 序列 ...

  4. hdu 4305 概率dp

    /* 题目大意:有n个房间由n-1个隧道连接起来,从1号房间开始, 每个节点i都有三种可能: 1.被杀死,回到节点1,概率为ki; 2.找到出口,离开迷宫,概率ei; 3.与它相连的有m个房间,到任意 ...

  5. ReferenceError与undefined的区别

    ReferenceError与undefined的区别 概述 ReferenceError 当尝试引用一个未定义的变量/函数时,就会抛出一个ReferenceError. undefined 当一个变 ...

  6. SPI总线介绍

    1. 简介 SPI, Serial Peripheral Interface, 串行外设接口, 是一种高速的.全双工.同步的通信总线SPI在芯片的管脚上只占用四根线 SPI接口主要用于MCU与各种外围 ...

  7. cannot load shared object file undefined symbol

    cannot load shared object file undefined symbol 场景: 共享库里引用了主程序一个符号,结构编译的时候没问题,运行时用 dlopen 打开共享库报上述错误 ...

  8. linux c/c++ 代码使用 doxygen 自动生成文档

    www.doxygen.org 的使用非常方便,下面分成2步介绍一下 1. 注释风格,需要在c/c++代码中按照下面的风格添加注释,基本上还是很顺手的 C++的注释风格 主要使用下面这种样式:即在注释 ...

  9. flask框架基本使用(4)(钩子函数,异常,命令行运行)

    flask 框架基本使用(1):https://www.cnblogs.com/chichung/p/9756935.html flask 框架基本使用(2):https://www.cnblogs. ...

  10. vim的最最基本配置

    全部用户生效 /etc/vimrc 当前用户生效 ~/.vimr # 1.设置语法高亮syntax on # 2.显示行号 set nu # 3.设置换行自动缩进为4个空格 # 4.设置tab缩进为空 ...