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命令的基本用法,如需深入研究,请自行学习。
原文:http://luoj5.blog.51cto.com/9389984/1728587