1、sed命令的简介及用法

sed:即为流编辑器,“stream editor”的缩写。他先将源文件读取到临时缓存区(也叫模式空间)中,再对满足匹配条件的各行执行sed命令。sed命令只针对缓存区中的副本进行,不会修改或破坏源文件。默认情况下,屏幕上既会打印各行的原始内容又会打印处理后的结果。

如图 1: sed 处理过程

sed语法:sed [选项]  匹配条件及编辑命令 输入文本(文件)

选项:

  -n∶使用安静(silent)模式,只打印被sed命令处理过的结果行,不打印未被sed命令处理的行。
        -e∶对模式空间中的各行执行多重编辑,编辑命令的顺序将影响结果。
        -f∶用一个sed脚本对输入进行编辑, -f filename指定sed脚本的文件名。
        -r∶编辑条件中使用扩展的正则表达式
        -i∶直接修改源文件,而不在屏幕上输出

匹配条件:

1、采用正则表达式进行匹配(包括字符匹配、次数匹配、位置匹配)

2、行号匹配 (行号从1开始)

    beginNumber~step:从行号为beginNumber开始,每隔step步长处理一次。例如: sed
-n 2~5p 含义:从第二行开始匹配,隔 5 行匹配一次,即 2,7,12.......。

     beginNumber, +N:从 beginNumber这行到往下 N 行匹配,总共匹配 N+1 行。

     beginNumber,  ~N:从addr1行开始,直到行号为N的整数倍时结束。

     beginNumber, endNumber:行号为beginNumber到endNumber之间的行。

编辑命令:

命 令 说 明
i 在当前行之前插入一行
a 在当前行之后追加一行
c 用新文本覆盖(cover)当前行
d 删除匹配的行
g 默认只修改各行中首次匹配成功的位置,该参数意为整行搜索和替换
p 打印匹配的行
q 结束或退出 sed命令
反向匹配,即对未匹配成功的行执行sed命令
s 用一个字符串替换另一个字符串

案例:

输入文件为ceshi.txt

选项-n的作用:

默认情况下会将未被sed命令处理的行也打印出来

有了选项-n后只打印经sed命令处理的行

删除命令d:删除从第三行到最后一行内容

修改命令s:在以两位数字结尾的行后面追加.5,符号“&”表示取匹配模式。

 行追加命令a:

 多个sed命令组成的通道:前一个sed命令的输出作为下一个sed命令的输入

amosli@amosli-pc:~/learn/sed$ cat test.txt
hi,this is sed command test file
linux world is so amazing you will LOVE it!
amosli@amosli-pc:~/learn/sed$ cat test.txt | sed 's/linux/LINUX/' | sed 's/sed/SED/'
hi,this is SED command test file
LINUX world is so amazing you will LOVE it!

2、用sed命令直接编辑源文件

法一:通过选项-i直接编辑源文件,而不是在屏幕上输出

 法二:先将sed处理的结果重定向到另外一个零时文件,再覆盖源文件

本博文参考了:linux命令总结sed命令详解  linux shell 脚本攻略学习19--sed命令详解

【OS_Linux】三大文本处理工具之sed命令的更多相关文章

  1. 【OS_Linux】三大文本处理工具之grep命令

    grep(global search regular expression(RE) and print out the line,整行搜索并打印匹配成功的行 语法:grep  [选项]   搜索词  ...

  2. 文本处理三剑客之sed命令

    第十八章.文本处理三剑客之sed命令 目录 sed介绍 sed命令常用选项 sed常用编辑命令 sed使用示例 sed高级语法 18.1.sed简介 sed全名stream editor,流编辑器,s ...

  3. 三大文本处理工具grep、sed及awk的简单介绍

    grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更 ...

  4. shell之三大文本处理工具grep、sed及awk

    grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更 ...

  5. 三大文本处理工具grep、sed及awk

    一.   用grep在文件中搜索文本 grep能够接受正则表达式,生成各种格式的输出.除此之外,它还有大量有趣的选项. 1.  搜索包含特定模式的文本行: 2.  从stdin中读取: 3.  单个g ...

  6. 【Linux】 字符串和文本处理工具 grep & sed & awk

    Linux字符串&文本处理工具 因为用linux的时候主要用到的还是字符交互界面,所以对字符串的处理变得十分重要.这篇介绍三个常用的字符串处理工具,包括grep,sed和awk ■ grep ...

  7. awk、sed、grep三大shell文本处理工具之sed的应用

    sed 流编辑器 对文本中的行,逐行处理 非交互式的编辑器 是一个编辑器 1.工作流程 1)将文件的第一行读入到自己的缓存空间(模式空间--pattern space),删除掉换行符 2)匹配,看一下 ...

  8. 文本处理三剑客之 Sed ——一般编辑命令

    sed简介 sed (stream editor for filtering and transforming text) 是Linux上的文本处理三剑客之一,另外两个是grep和awk. sed又称 ...

  9. linux下sed命令笔记

    sed 流编辑器 Stream EDitor三大文本处理工具:grep,sed,awk 语法:sed 'AddressCommand' file ...Address:    1,StartLine, ...

随机推荐

  1. java 程序从linux 上接收不可见字符

    近期在写一个简单的小java程序,希望在运行java 程序时,从shell 中接收参数,并且参数的内容为不可见字符. 开始时还觉得可以使用"\"之类的转义符来写,后来发现java程 ...

  2. 最长上升序列(Lis)

    Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence ...

  3. Jasper_crosstab_measure_display a value of field in crosstab total row

    1.create a measure <measure name="myField" class="java.lang.String"> <m ...

  4. 《深入理解java虚拟机》笔记(1)运行时数据区域

    1.Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来. 2.运行时数据区域划分 java虚拟机在执行java程序的过程中会把它所管理的内存划 ...

  5. split()分割字符串用法

    <script type="text/javascript"> var str="How are you doing today?" documen ...

  6. MD5加密的方法

    #region MD5加密 /// <summary> /// MD5加密 /// </summary> /// <param name="strPwd&quo ...

  7. VS2015 VB.Net利用QrCodeNet生成QR Code

    Step by step Create QR Code with QrCodeNet Step.1 新建項目 Step.2 下載QrCodeNet代碼,解壓\QrCodeNet\sourceCode\ ...

  8. IOS之UIAlert​Controller

    你知道 UIAlertView.UIActionSheet (以及它们各自的 delegate protocols) 在 iOS 8 中已经被废弃了吗? 这是真的.在你的代码中按住 ⌘ 点击 UIAl ...

  9. SQL 数学串函数

    数学函数 ceiling  取上限 floor  取下限 round 四舍五入 len   长度 abs  绝对值 PI()圆周率 sqrt 开根号 qwuare 平方根 select  10     ...

  10. LINUX提高openfire并发数(网上收集)

    谷歌博客地址:http://tsaiquinn.blogspot.com/2014/10/linuxopenfire.html 影响连接数的元素包含三种:1)Linux的系统参数2)进程自身可以创建的 ...