Linux下sed命令使用全解析

向日葵大班班

向日葵大班班

2016-03-31 15:18

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

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://m.tulaoshi.com/fuwuqi/)(本文来源于图老师网站,更多请访问http://m.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://m.tulaoshi.com/fuwuqi/)(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fuwuqi/)

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

  四、使用示例

  代码如下:

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

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

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

20151026113212056.png (426×100)

  代码如下:

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

  # 把-e换成-n

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

20151026113238876.png (402×48)

  代码如下:

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

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

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

20151026113258767.png (465×267)

  代码如下:

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

  # 多命令执行 -e

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

20151026113315497.png (599×134)

  代码如下:

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

  # -i 不输出 -s 替换

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

20151026113350275.png (535×319)

  代码如下:

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

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

   sed -e '2i xiaowei' test.txt

20151026113425957.png (508×321)

  代码如下:

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

  # d 删除输入任何字符串

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

20151026113448647.png (432×290)
展开更多 50%)
分享

猜你喜欢

Linux下sed命令使用全解析

服务器
Linux下sed命令使用全解析

Linux中如何使用sed命令

电脑入门
Linux中如何使用sed命令

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Linux下如何使用sed命令替换字符串

电脑入门
Linux下如何使用sed命令替换字符串

Linux系统下findmnt命令使用全解

服务器
Linux系统下findmnt命令使用全解

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Linux下如何使用cat命令?

电脑入门
Linux下如何使用cat命令?

linux下screen命令的使用

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
linux下screen命令的使用

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

苹果iPhone6S如何屏蔽垃圾短信

苹果iPhone6S如何屏蔽垃圾短信

在Linux系统下安装Gnuplot和Maxima来帮助处理数学问题

在Linux系统下安装Gnuplot和Maxima来帮助处理数学问题
下拉加载更多内容 ↓