Linux下sed命令使用全解析

2016-03-31 15:18 32 1 收藏

下面图老师小编要跟大家分享Linux下sed命令使用全解析,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

【 tulaoshi.com - 服务器 】

Linux下sed命令使用全解析

   一、Sed简介

  Sed:Stream Editor 流式编辑器 又称行编辑器,每次只编辑一行。Sed工作是在模式空间中进行的,并不操作源文件。对源文件无危害。

  二、Sed使用格式

  Sed命令的常用格式如下:

  (1)Sed [options] ‘script’ input_file

  (2)Sed [options] –f script_file input_file

  (3)Sed [options] ‘ADDR1,ADDR2command’ input_file

  例如:#sed ’1,2d’ fstab 就可以将fstab的前两行删除并显示出来,但是它不会改变源文件。

  #Sed ‘1,2!d’ fstab 表示删除除第一行和第二行之外的所有行。

  (4)Sed [options] ‘/PATTERN/command’ input_file

  &:s/l..e/&er/:表示引用前面匹配到的所有字符。

  例如:sed ‘/[[:upper:]]/d’ binary.sh 表示删除所有的大写字母的行。

  (5)Sed ‘/PATTERN1/,/PATTERN2/command’ input_file

  说明:这表示从第一次被PATTERN1匹配到的行到第一次被PATTERN2匹配到的中间的所有行执行command命令。

  三、Sed的常用选项:

  -n:只显示sed匹配到的行。其余行不显示。下文有范例。

  -i :可以直接操作原文件。默认情况下sed不会改变原文件,但是-i选项可以修改原文件,此选项应慎用。

  -r:可以使用标准正则表达式。默认情况下sed只支持基本正则表达式,但是加上-r选项后则支持扩展正则表达式

  -e:多脚本共用。可以同时执行多个命令。例如:

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  [root@localhost ~]# sed -e 's@@H1@g' -e 's@(l..e).@1r.@g' test

  He love His lover.

  She like Her liker.

  Dove love Her liker.

  也可以这样用,中间用分号隔开:

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  [root@localhost ~]# sed 's@@H1@g;s@(l..e).@1r.@g' test

  四、使用示例

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  #sed -e 命令行处理 -a 新增

   sed -e '$ a widuu' test.txt #在test.txt的结尾处添加widuu

20151026113212056.png (426×100)

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  # 把-e换成-n

   sed -n '$ a widuu' test.txt # 只显示被处理的一行

20151026113238876.png (402×48)

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  # -c 替换多少行 为你制定的字符串,这里我的test.txt内容如图

   sed -e '2,5c xiaowei' test.txt #把2-5行替换成字符串xiaowei

20151026113258767.png (465×267)

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  # 多命令执行 -e

   sed -e '2,5c xiaowei' -e 's/cccc/widuu/' test.txt

20151026113315497.png (599×134)

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  # -i 不输出 -s 替换

  sed -i 's/111111/widuu/g' test.txt

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)
20151026113350275.png (535×319)

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  # i 插入 自定义的字符串 在test.txt的第二行插入xiaowei

   sed -e '2i xiaowei' test.txt

20151026113425957.png (508×321)

  代码如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  # d 删除输入任何字符串

   sed -e '2d' test.txt #删除第二行

20151026113448647.png (432×290)

来源:http://www.tulaoshi.com/n/20160331/2050350.html

延伸阅读
标签: 电脑入门
Linux date命令主要用于显示和设定系统的时间,对于程序员来说,date命令是很重要的,日期和时间出错可能会导致无法编译程序,下面图老师小编就给大家介绍下date命令的用法。 因为日期和时间很重要,这或许就是开发网络时间协议(NTP:Network Time Protocol)的原因。让我们了解下date命令是如何工作的。 显示系统日期 要显示系统日期...
标签: 电脑入门
Linux下cp命令的用法主要用于复制文件,加上参数还可以复制目录,下面随图老师小编一起来了解下Linux下cp命令的具体用法。 一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本中执行cp时,没有-i参数时不会询问是否覆盖。这说明命令行和shell...
标签: 服务器
Linux系统下wget命令的使用教程   一、Linux wget简介 wget是linux上的命令行的下载工具。这是一个GPL许可证下的自由软件。Linux wget支持HTTP和FTP协议,支持代理服务器和断点续传功能,能够自动递归远程主机的目录,找到合乎条件的文件并将其下载到本地硬盘上;如果必要,Linux wget将恰当地转换页面中的超级连接以在本地生成...
标签: 电脑入门
Linux中rz命令和sz命令都可用于文件传输,而rz命令主要用于文件的上传,下面将通过几个实例来给大家详细介绍下Linux下rz命令的用法,一起来学习下吧。 rz命令可以批量上传文件,当然也可上传单个文件啦。使用的协议是古老的ZMODEM协议,虽然协议古老,但毫不影响的简单易用的特性。一般情 况我们要上传文件到Linux系统,要么使用ftp(还得...
标签: 服务器
Linux系统下apachectl命令使用说明   linux中的apachectl命令其设计意图是帮助管理员控制Apache httpd后台守护进程的功能。apachectl脚本有两种操作模式。第一,作为简单的httpd的前端程序,设置所有必要的环境变量,然后启动httpd ,并传递所有的命令行参数。第二,作为SysV初始化脚本,接受简单的一个单词的参数,如:start, rest...

经验教程

610

收藏

49
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部