sed用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed用法相关的知识,希望对你有一定的参考价值。
sed [option]... ‘script‘ inputfile...
script:地址命令
opt:
-n 不输出模式空间内容到屏幕,即不自动打印
-e 多点编辑
-r 支持使用扩展正则表达式
-i.bak 备份文件并原处编辑 ?
地址:(1) 不给地址:对全文进行处理
(2) 单地址: #: 指定的行,$:最后一行 ,/pattern/:被此处模式所能够匹配到的每一行
(3) 地址范围: #,#从#行到#行 ,#,+# ,/pat1/,/pat2/ , #,/pat1/
(4) ~:步进 1~2 奇数行 2~2 偶数行
使用分组进行后向引用
命令:
d 删除模式空间匹配的行,并立即启用下一轮循环
p 打印当前模式空间内容,追加到默认输出之后
a []text 在指定行后面追加文本,支持使用
实现多行追加
i []text 在行前面插入文本
c []text 替换行为单行或多行文本
w /path/file 保存模式匹配的行至指定文件
r /path/file 读取指定文件的文本至模式空间中匹配到的行后
s/pattern/newpattern/g行内全局替换 p打印替换成功的行 w /PATH/FILE将替换成功的行保存至文件中
高级编辑命令:
P: 打印模式空间开端至
内容,并追加到默认输出之前 ?
h: 把模式空间中的内容覆盖至保持空间中 ?
H:把模式空间中的内容追加至保持空间中 ?
g: 从保持空间取出数据覆盖至模式空间 ?
G:从保持空间取出内容追加至模式空间 ?
x: 把模式空间中的内容与保持空间中的内容进行互换 ?
n: 读取匹配到的行的下一行覆盖至模式空间 ?
N:读取匹配到的行的下一行追加至模式空间 ?
d: 删除模式空间中的行 ?
D:如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本, 并不会读取新的输入行,而使用合成的模式空间重新启动循环。如果模式空间 不包含换行符,则会像发出d命令那样启动正常的新循环
以上是关于sed用法的主要内容,如果未能解决你的问题,请参考以下文章