【转载于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. golang effective 翻译

    参考 Effective Go 官方文档 其他参考译文 https://studygolang.com/articles/3228 http://docscn.studygolang.com/doc/ ...

  2. Codeforces Round #325 (Div. 2) A

    A. Alena's Schedule time limit per test 1 second memory limit per test 256 megabytes input standard ...

  3. maven使用nexus服务器

    1.找到maven的安装路径,例如:C:\apache-maven-3.3.9 打开conf目录下的settings.xml文件 2.在<servers>节点下,配置 <server ...

  4. HTTP Basic 机制

    package com.enation.app.shop.component.payment.plugin.cod; import java.io.IOException; import java.u ...

  5. RSA加密/解密 Decryption error异常解决

    RSA加密/解密 Decryption error异常解决 import java.io.ByteArrayOutputStream; import java.security.Key; import ...

  6. linux启动流程梳理【转】

    接触linux系统运维已经好几年了,常常被问到linux系统启动流程问题,刚好今天有空来梳理下这个过程:一般来说,所有的操作系统的启动流程基本就是: 总的来说,linux系统启动流程可以简单总结为以下 ...

  7. Java并发编程--CyclicBarrier

    概述 CyclicBarrier是一个同步工具类,它允许一组线程互相等待,直到到达某个公共屏障点.与CountDownLatch不同的是该barrier在释放等待线程后可以重用,所以称它为循环(Cyc ...

  8. win8下notepad++无法设置文件关联

  9. /proc/sys/shm/drop_caches

    author:skate time:2012/02/22 手工释放linux内存--/proc/sys/vm/drop_cache 转载一篇文章 linux的内存查看: [root@localhost ...

  10. POCO库中文编程参考指南(4)Poco::Net::IPAddress

    POCO库中文编程参考指南(4)Poco::Net::IPAddress 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmai ...