LinuxDay10——文本处理工具sed
Posted gmiaomiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LinuxDay10——文本处理工具sed相关的知识,希望对你有一定的参考价值。
sed(Stream EDitor),行编辑器
sed [option]..‘scrip‘ inputfile
scrip ‘地址命令‘
不给地址:对全文进行处理
单地址:
#:指定的行 $:最后一行
/pattern/:被此模式所能匹配到的每一行
地址范围
#,#
#,+#
/part/,/part2/
#,/part1/
~:步进
1~2奇数行
2~2偶数行
常用选项:
-n关闭打印内容
-r 使用拓展正则表达式
-e多点编辑
-i bak:备份文件并原处编辑
-r 支持使用扩展正则表达式
编辑命令:
d删除空间模式的匹配的行
p打印当前空间内容
d 删除
!模式匹配取反
=模式空间行 加行号
a[\]text:在指定行后面追加文本
支持使用\n实现多行追加
i[\]text:在行前面插入文本
c[\]text:替换行为单行或多行文本
w/path/somefile:保存模式匹配的行至指定文件
r/path/somefile:读取指定文件的文本至模式空间中匹配到的行后
=:为模式空间中的行打印行号
!:模式空间中匹配行取反处理
sed工具
s///:查找替换,支持使用其他分隔符,[email protected]@@,s###
替换标记:
g:行内全局替换
p:显示替换成功的行
w/PATH/TOSOMEFILE:将替换成功的行保存至文件中
高级编辑命令
P:打印模式空间开端至\n内容,并追加到默认输出之前
h:把模式空间中的内容覆盖到保持空间中
H;把模式空间中的内容追加至保持空间中
g:把保持空间中的内容覆盖到模式空间
G:把保持空间中的内容追加至模式空间
x把模式空间中的内容与保持空间中的内容进行互换
n把读取匹配到的行的下一行覆盖至模式空间
N读取匹配到的行的下一行追加至
d删除模式空间中的行
D:如果模式空间包含换行符,则删除直到第一个换行符的模式空间中的文本,并不会读取新的输入行,而使用合成的模式空间重新启动循环。如果模式空间不包含换行符,则会像发出d命令那样启动正常的新循环
以上是关于LinuxDay10——文本处理工具sed的主要内容,如果未能解决你的问题,请参考以下文章