您的位置:首页 > 运维架构 > Linux

Linux之Sed命令详解

2015-12-26 16:51 603 查看
Linux之Sed命令详解

sed简介:

sed 是一种在线编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕;sed命令本身是一个很好用的管道命令,sed命令还可以将数据进行取代、删除、新增等等的功能。
sed用法:
sed [选项]... {脚本}{命令} [输入文件]...

选项:
-r:在脚本中使用扩展正则表达式
-n:不输出模式空间的内容至屏幕
-e:多点编辑,同时制定多个编辑命令
-i:直接编辑原文件
-f /PATH/FILE:从文件中读取sed命

脚本:这里的脚本可以理解为“定址”,用来定位你所希望编辑的行;也可理解定义一个范围。
定址:

^:以什么开头的
$:以什么结尾的

.:后面跟一个任意字符

*:0个或多个字符

[]:指定范围内的字符

[^]:不在指定范围内的字符

#:指定行
/pattern/:被模式匹配的每一行
#,#:从#行到#行
#,+#:从#到+#行

1~2:奇数行

2~2:偶数行

.....

命令:代表要执行的操作

a \charecter:新增,a的后面跟字符串,在行后面增加字符串

i \charecter:插入,在行前面增加字符串

d:删除指定的行

p:输出指定的行

c \charecter:取代,取代指定行

s:替换,例:s/old/new/g 把old替换成new

g:全局替换

下面是些示例:

1. 删除/tmp/passwd中的 2~5行





2.替换/tmp/fstab中的UUID为UID




3.删除/tmp/fstab中的以#号开头的行





4.在/tmp/fstab的9到12行后面加上”how are you“




5.只显示/etc/passwd中关于root的行




-n,-p一般性都是联合使用

以上是sed命令的基本用法,如需深入研究,请自行学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息