sed工具使用

语法

sed [-hnV][-e<script>][-f<script文件>][文本文件]

参数说明

  • -e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
  • -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
  • -h或--help 显示帮助。
  • -n或--quiet或--silent 仅显示script处理后的结果。
  • -V或--version 显示版本信息。

动作说明

  • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
  • d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
  • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
  • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
  • s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

举例子

文件内容如下:

 

 

1.把/etc/passwd拷贝到root/test.txt文件。sed打印出所有行

 

说明:在正则表达式中,^表示行的开始,$表示行的结尾,空行可以用^$表示。

 

 2.打印test.txt中的第三行到第五行

 

 注意:要打印的数用单引号,如3到5   '3,5' 参数p在符号外面

3.打印test.txt中包含root的行

 

 注意:需要打印的字符需要用转义符号/ 

4.删除test.txt中的第5行和后面的行

 

 5.删除包含bash的行

 

 6.将文本中的 root 替换为 toor

 

 注意:参数[s]为替换的动作,参数[g]表示本行全局替换。本例若不添加,第一行只有第一个root替换成为toor

7.将文本中的/bin/bash替换成为/sbin/login

 

 注意:包含一个路径需要更改时候,在路径的前后添加#号来区分

8.删除第7到第15行的所有数字删除

 

 注意:在删除行的数字可以用  / 区分行号和数组

 

精华总结:

1.打印某行的使用动作参数p,行数用'A,B'表示。

2.打印某字符串时候用转义符号 / 区分字符串。sed -n '/root/'p .xxx

3.在正则表达式中,行首用 ^ 表示,行尾用 $ 表示,(1,$)表示第一行到行尾。

4.删除行用参数d

5.替换用参数s,其中参数g表示本行全局替换。替换为某路径用#间隔, sed  s'#/bash/shell#bash/login'g .xxx 。其中替换内容在单引号内

6.删除某行字符,sed 's/7,9/[0-9]//g' xxx

posted @ 2020-02-08 02:34  湘北10#  阅读(298)  评论(0编辑  收藏  举报