sed工具使用

Posted lovelitao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于sed工具使用的主要内容,如果未能解决你的问题,请参考以下文章

linux的sed工具使用介绍

sed工具使用1

sed工具使用

linux中sed工具的使用

sed工具使用2

Word 文档的优秀代码片段工具或插件?