sed的使用和基本操作命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed的使用和基本操作命令相关的知识,希望对你有一定的参考价值。

1  使用sed格式:

1.1  命令行格式:

sed 参数 命令输入的文件  (参数有-e-n-e一般用于调用两个命令,-n一般用于匹配p的命令意思是打印相关的行)   (命令由行定位既正则+sed命令即操作)

1.2  脚本格式:

sed  -f参数 脚本文件   输入的文件

2  查看打印的行号:

nl  文件  |  sed -n  要打印的行

3  Sed的行定位:

3.  1定位一行:x行号

sed  -n  ’要打印的行数如10p’  文件   最后是打印出了第十行

 /pattern/正则 

  sed -n  ’/要打印的行的开头表达式如mooc/p’  文件   最后是打印出了你想要打印的行

3.2  定位多行:xy都是行号,意思是从x行到y行,

nl 文件  |  sed -n  ’   要打印的行如10,20p‘         最后是打印出了第十行到第二十行

4  /pattern/,x  

nl 文件  | sed  -n  ’要打印的第一行的开头表达式如mooc/,/要打印的最后一行的开头表达式如root/p’   最后是打印出了你想打印的第mooc行到root

5  x,y! 反向定位多行

5.1  nl  文件  |  sed -n  ’不打印的行数如10p’  最后是打印出了除了第十行的所有行

5.2  nl  文件 |  sed  -n  ’不打印的第几行如10,到不打印的第几行如20p’ 最后是打印出除了第十行到第二十行的所有行

6  定位间隔几行:first-step  从第几行跳到第几行

  nl 文件  | sed  -n  ’第几行跳到第几行如1 ~2p’   最后是从第一行跳到第三行的顺序打印出全部

7  - p打印相关的行如(一定要配合-n使用)

8  - a新增行 

8.1  nl  文件 |  sed  ’从第几行后面要增加的内容如5a////////’  结果是在第五行的后面增加了一行///////////

8.2  nl  文件 |  sed  ’从第几行到第几行后面要增加的内容如1,5a》》》》’  结果是从第一行到第五行每一行后面都增加一行》》》》 

9  -  i插入行

9.1  nl  文件 |  sed  ’从第几行前面插入内容如8i#######’  结果是从第八行前面插入一行#########

9.2  nl   文件 |  sed   ’从第几行到第几行前面要插入的内容如1,3i&&&&’   结果是从第一行到第三行每一行前面都插入一行&&&&

10  -c替代行

10.1  nl  文件 |  sed  ’你要替换哪一行以及替换的内容如[email protected]@@’  结果是你把第二行替换成了一行@@@

10.2  nl  文件 |  sed  ’你要替换从第几行到第几行以及替换的内容如1,6c¥¥¥’  结果是你从第一行到第六行都替换成了一行¥¥¥    (这里的替换只会把你要替换的第几行到第几行替换成一行)

11  -d删除行

   nl  文件  |  sed  ’你要删除的那一行如/mooc/d’   结果是你删除了以mooc为开头表达式的那一行

案例一:优化服务器配置  ssh的配置文件加入相应的文本 

 sed  ’$a\要空的空格要增加的第一行内容 \n要空的空格要增加的第二行内容配置文件名

案例二:文本的处理  删除文本中的空行

  sed  ’/^$/d’ 文本名

案例三:服务器日志处理  服务器log中找出error报错

sed  -n  ’/要找的内容如Error/p’ 日志名

12  -s替换  替换文件中的内容

  sed  ’s/替换前的内容/替换后的内容/’ 文件名 替换内容时会替换所有符合的内容,而替换字符时只会替换第一个符合的字符所以后面要加上-g

13  -g全局替换的标志

替换文件中的字符  sed  ’s/替换前的字符/替换后的字符/g’  文件名


以上是关于sed的使用和基本操作命令的主要内容,如果未能解决你的问题,请参考以下文章

1-27 sed基本编程和cut基本应用

sed教程之基本命令

sed命令的基本使用

文本三剑客☞sed

sed的用法

Linux三剑客--sed编辑器基本操作规范 详细解读