sed

Posted fatzi

tags:

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

sed:流编辑器
主要用来过滤和替换文本内容
工作原理:
1. sed是流编辑器,不允许用户与它进行交互操作.sed是以行为单位处理文本内容的.每一次读取一行到内存中,即称之为模式空间(pattern space)
2. 默认不修改原文件,如果需要修改需加-i参数
3. sed有模式空间及保持空间(hold sapce),默认打印模式空间中的内容到标准输出
4. sed读取每行的时候会将内容保存至内存中
5. 支持正则和扩展正则表达式,除-y选项

-n, --quiet,--silent 取消自动打印模式空间
-i:修改元文件
s:替换
g:从第几个开始替换
&:表示被匹配的内容
p:print 表示打印第几行
sed -n ‘3,+3p‘ /etc/passwd:从第三行往下打印3行
‘1~2p‘ 奇数行
‘2~2p‘ 偶数行
^:以什么开头的行
$:以什么结尾的行
d:删除
.*:表示贪婪匹配
/^$/d:删除空白行
a:追加
i:插入
c:整行替换
w:write 将匹配到的行写入指定文件中
$=:显示最后一行的行号
!:取反
###高级用法###
n|N
n:next 读取下一行覆盖模式空间的行
N 读取下一行并追加到模式空间中的行后面
x:把模式空间中的内容到保持空间中的内容呼唤,初始保持空间为空
h|H:
h:把模式空间中的内容覆盖至保持空间中
H:把模式空间中的内容追加至保持空间中
g|G
g:把保持空间中的内容覆盖至模式空间中
G:把保持空间中的内容追加至模式空间中

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

Sed教程之Sed语法

sed和awk之sed篇(含sed高级用法)

sed 在指定行插入?

sed的增删改查sed常见问题

sed打印指定范围

sed删除怎么生效