sed命令用于在线编辑文本,它一次处理一行内容。

命令语法:

sed [-n/e/f/r/i] [cmd] [InFile]

参数解释:

选项与参数:

-n: quiet/silent,安静模式,经过sed处理过的行才会被列出来

-e script: 将script脚本添加到要执行的命令中
-f script-file: 将script-file的内容添加到要执行的命令中,即直接运行script-file内的sed命令; -i: 直接编辑源文件 -r: redxp-extended,在脚本中使用扩展的正则表达式 操作cmd: c: copy,用新文本替换当前行中的文本 d: delete, 删除行 i: insert,在当前行之前插入文本 a: add,在当前行之后新增一行或多行 s: separate,替换一行中的部分文本,一般与正则表达式一起使用 p :列印,即将某个选择的数据列出

栗子

# sed.txt

mac
winxp
linux
win7
linux

1. 替换(c)

1)替换第1行为shell

sed '1c shell' sed.txt

结果为:

shell
winxp
linux
win7
linux

2)替换1-3行为java

sed '1,3c java' sed.txt

结果为:

java
win7
linux

3)嵌入正则表达式,用 /   / 包住。替换所有包含 win 的行为python

sed '/win/c python' sed.txt

结果为:

mac
python
linux
python
linux

2.  删除(d)

1)删除第2行

sed '2d' sed.txt

结果为:

mac
linux
win7
linux

2)删除最后一行($表示最后一行)

sed '$d' sed.txt

结果为:

mac
winxp
linux
win7

3)删除1-3行

sed '1,3d' sed.txt

结果为:

win7
linux

4)嵌入正则表达式,用 /   / 包住。删除包含 win 的行

sed '/win/d' sed.txt

结果为:

mac
linux
linux

3. 插入(i)

1)所有的行之前插入 ##

sed 'i##' sed.txt

结果为:

##
mac
##
winxp
##
linux
##
win7
##
linux

2)1-3行之前插入 0000

sed '1,3i0000' sed.txt

结果为:

mac 

winxp 

linux
win7
linux

3)嵌入正则表达式,含有 win 的行之前插入****

sed '/win/i*****' sed.txt

结果为:

mac
*****
winxp
linux
*****
win7
linux

4. 新增(a),跟插入类似,只不过这是在选定行之后。

5. 替换(s)

1) 替换 问本中 0 为 9

sed 's/0/9/' sed.txt

结果为:

mac
winxp
linux
win7
linux

你会发现只替换了每行的第一个

要把所有的都替换,可以添加参数 g

sed 's/0/9/g' sed.txt

结果为:

mac
winxp
linux
win7
linux

6. 【 -n 】,一般与 p 联合使用,增加、删除、替换行的命令不需要 -n 选项

1)列出第2行数据

sed -n '2p' sed.txt

结果为:

winxp 

7. 【 -i 】

1)把源文件 sed.txt 中的所有 0 替换为 9

sed -i 's/0/9/g' sed.txt

命令 cat  sed.txt 打开 sed.txt

结果为:

mac
winxp
linux
win7
linux

shell的sed命令的更多相关文章

  1. [shell基础]——sed命令

    关于sed sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓 ...

  2. Shell之sed命令

    sed用于一次性处理所有的编辑任务,尤为高效,为用户节省了大量的时间,sed适用于以下三种场合: 1.编辑相对交互文本编辑器而言太大的文件: 2.编辑命令太复杂,在交互式文本编辑器中难以输入的情况: ...

  3. linux shell 用sed命令在文本的行尾或行首添加字符

    转自 http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed ...

  4. Shell学习:sed命令

    http://blog.sina.com.cn/s/blog_a56ef5490101cn58.html sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行 ...

  5. 【shell】sed命令

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

  6. Linux Shell编程 sed命令

    概述 sed 是一种几乎可以应用在所有 UNIX 平台(包括 Linux)上的轻量级流编辑器,体积小.所以,它可以对从如管道这样的标准输入中接收的数据进行编辑. sed 主要是用来将数据进行选取.替换 ...

  7. shell脚本——sed命令

    sed 命令 作为行编辑器,对文件进行编辑(以行为单位进行编辑) sed编辑文件,却不改变原文件 sed工作原理: 指定一个文本文件,依次读取文本文件中的每行内容,读取到模式空间中,在模式空间中进行匹 ...

  8. Makefile Shell 脚本;sed命令

    1. 在Makefile中想使用shell脚本,需要添加"@"符号,例如: @if [ -d xxx ]; then \                        //-d 判 ...

  9. shell中sed命令

    sed -i '/cd ${LDIR_DEST}\/webextend\/pc && ln -s \/hard\/www_winclient\/bboxpc.exe ./a\ \tcd ...

随机推荐

  1. wordpress4.4+版本自动生成一个768w像素缩略图的解决办法

    4.4版本以后,wordpress增加了响应式图片的功能,目的是让图片能适应手机.平板等不同屏幕,但是我不想要这个功能,把缩略图大小全调成0,function.php里的相关函数全删除了, 上传图片还 ...

  2. Java中的Union Types和Intersection Types

    前言 Union Type和Intersection Type都是将多个类型结合起来的一个等价的"类型",它们并非是实际存在的类型. Union Type Union type(联 ...

  3. RSA详解

    RSA RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作.RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥 ...

  4. 剑指offer试题(PHP篇三)

    21.栈的压入.弹出序列 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4 ...

  5. AlexNet论文翻译-ImageNet Classification with Deep Convolutional Neural Networks

    ImageNet Classification with Deep Convolutional Neural Networks 深度卷积神经网络的ImageNet分类 Alex Krizhevsky ...

  6. PHP使用Sublime Text3技巧

    1 下载安装 2 安装Package Control 3 安装插件 4 快捷键 5 项目管理 6 设置代理 PHP开发时,笔者用过EditPlus3.Nodpad++.Vi.Vim和Netbeans, ...

  7. 设计与实现分离——面向接口编程(OO博客第三弹)

    如果说继承是面向对象程序设计中承前启后的特质,那么接口就是海纳百川的体现了.它们都是对数据和行为的抽象,都是对性质和关系的概括.只不过前者是纵向角度,而后者是横向角度罢了.今天呢,我想从设计+语法角度 ...

  8. 第一阶段Spring个人总结

    通过这一阶段的冲刺,我感到的是名义上的团队,而实际上却是一个人的事,每个人跟每个人都不一样,都有自己的特点,总会出些不必要的麻烦. 还有团队的进展也是看不到什么东西,说实话,这次我并没有太多关注团队的 ...

  9. Codeforces Round #258 (Div. 2) 容斥+Lucas

    题目链接: http://codeforces.com/problemset/problem/451/E E. Devu and Flowers time limit per test4 second ...

  10. 第三次作业---excel导入数据库及显示

    好吧首先承认这次作业失败了,而且我并不知道原因.另外,我也没有采用PowerDesigner 设计所需要的数据库,代码就用了全部的时间.感觉自己就像一个刚学会爬着走路的小孩去参加一百一十米跨栏,能不能 ...