Shell之sed命令

  sed用于一次性处理所有的编辑任务,尤为高效,为用户节省了大量的时间,sed适用于以下三种场合:

 1、编辑相对交互文本编辑器而言太大的文件;

  2、编辑命令太复杂,在交互式文本编辑器中难以输入的情况;

  3、对文件扫描一遍,但是需要执行多个编辑函数的情况;

sed 只是对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件。因此,如果需要保存改动内容,需要将输出重定向到另一个文件,可以使用下面格式的命令:

    sed  ‘sed命令‘  input_file > result_file

 该命令将sed 命令对input-file的更改保存到result-file中,“>”符号是重定向符号;

 调用sed的三种方式:

    1、在shell中直接调用sed,格式为:sed  [选项]  ‘sed命令‘   输入文件  //必须用单引号引起sed命令

    2、将sed命令插入脚本文件后,然后通过sed命令调用它,格式为:

        sed   [选项]   -f    sed脚本   输入文件

    3、直接执行sed脚本,格式为:

         ./sed 脚本文件  输入文件

  sed命令标识对文本进行如何处理。如打印、删除、追加、插入、替换等

sed命令定位文本的方法:

  sed   -n  ‘1p‘  input    //仅仅打印input的第一行; 若不带-n选项,则不仅仅打印第1行,还会打印input的全部内容;

  sed   -n  ‘3, 6p‘  input     //仅仅打印第3-6行

  使用/pattern/方法进行模式匹配

    sed  -n  ‘/Certificate/p‘  input    //打印匹配Certificate的行,大小写敏感

    sed  -n  /Certificate/,  6p‘ input    //打印匹配Certificate的行 到 6 之间的行  

   sed编辑命令 a\ 符号用于追加文本,它可以将指定文本的一行或多行追加到指定行后面。如果不指定文本追加位置,sed默认放置到每一行的后面,追加文本的格式为:

     sed  ‘指定地址a\text‘  输入文件

    注:指定地址以匹配模式/pattern/或行号的形式给出,用于定位新文本的追加位置,sed对\a后的文本进行追加操作(增加新的一行);

    特别注意:sed完成追加文本功能后,只是将结果输出到标准输出,原始文件并没有做任何改变;

1 /bin/sed   -f          #必须加上-f选项, 若无此选项,脚本执行报错
2 /test/a\                #a\表示在test所在的行之后添加文本
3
4 #添加内容
5 We append a new line . \    #"\”符号表示换行
6 We append  another line.

  "$"符号,在正则表达式中表示行尾,特别注意的是,在sed中, "$"表示最后一行;

  sed  -n  ‘2, 10!p‘  input  //表示打印出非2--10行的行;

  插入文本:sed   ‘指定地址i\text‘   输入文件  //与“a\”刚好相反,在指定位置所在行之前行拆入text; (text是新的一行)

   

  

    

时间: 2024-08-14 01:54:23

Shell之sed命令的相关文章

[shell基础]——sed命令

关于sed sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出.sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. sed详解 sed  [选项]  sed编辑命令  输入文件shell 命令 |  sed  [选项]   s

Linux Shell学习-sed命令详解

(1).sed介绍 Sed是流编辑器,stream editor,它是一个将一些列编辑命令作用于一批文本文件的理想工具. (2).sed工作原理 Sed是一个非交互式文本编辑器,它可以对文本文件和标准输入进行编辑,标准输入可以是来自键盘输入.文件重定向.字符串.变量,甚至来自管道的文本. Sed从文本的一个文本行或标准输入中读取数据,将其复制到缓冲区,然后读取命令行或脚本的第一个命令,对此命令要求的行号进行编辑,重复此过程,直到命令行或脚本中的所有命令都执行完毕. 相对于诸如vi等其他文本编辑器

Linux Shell编程 sed命令

概述 sed命令用来选取.替换.删除.新増数据 sed 是一种几乎可以应用在所有 UNIX 平台(包括 Linux)上的轻量级流编辑器.sed 有许多很好的特性.首先,它相当小巧,通常要比你所喜爱的脚本语言小多倍.其次,因为 sed 是一种流编辑器,所以,它可以对从如管道这样的标准输入中接收的数据进行编辑.因此,无须将要编辑的数据存储在磁盘上的文件中.因为可以轻易将数据管道输出到 sed,所以,将 sed 用作强大的 Shell 脚本中长而复杂的管道很容易.sed 主要是用来将数据进行选取.替换

shell之sed命令删除变量中带有“日期时间等内容”的方法

sed命令删除指定等内容可能大家都知道,比如想要删除某个文件中包含"badboy"的那行,直接使用下面的命令就可以: sed -i '/badboy/d' file.txt 就可以把flie.txt文件中包含badboy的内容全部删掉. sed命令删除指定行,如果匹配字符用变量替代,变量中包含"/"符号,使用下面方法处理: 例如: [[email protected]]# vi a.txt /usr/sbin/restart.sh /usr/sbin/control

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

from:http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~ 用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed 's/^/HEAD&/g' test.file 在每行的行尾添加字符,比如“T

Shell学习:sed命令

http://blog.sina.com.cn/s/blog_a56ef5490101cn58.html sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为:         sed [-nefri] ‘command’ 输入文本 常用选项:        -n∶使用安静(silent)模式.在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上.但如果加

【shell】sed命令

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为:         sed [-nefri] ‘command’ 输入文本 常用选项:        -n∶使用安静(silent)模式.在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上.但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来.        -e∶直接在

Shell脚本sed命令

from:http://blog.csdn.net/engledb/article/details/19623087 六.常用范例 1.p命令 命令p用于显示模式空间的内容.默认情况下,sed把输入行打印在屏幕上,选项-n用于取消默认的打印操作.当选项-n和命令p同时出现时,sed可打印选定的内容. 例子: [plain] view plaincopy (1)sed '/my/p' datafile #默认情况下,sed把所有输入行都打印在标准输出上.如果某行匹配模式my,p命令将把该行另外打印

Makefile Shell 脚本;sed命令

1. 在Makefile中想使用shell脚本,需要添加"@"符号,例如: @if [ -d xxx ]; then \                        //-d 判断是否存在,在shell中,用[]号代替括号 rm -rf xxx;  \ fi; @cp -fv  xxx  xxxx     //-f 删除已经存在的目标文件而不提示  -v  cp命令将告诉用户正在做什么 例:  cp -fv temp temp2 显示: 'temp'  ->  'temp2'