sed 用法-文本处理三剑客之一

sed 简介

文本处理三剑客

文本处理三剑客:

  • grep, egrep, fgrep:文本过滤器
  • sed:Stream EDitor,流编辑器,行
  • awk:文本格式化工具,报告生成器

sed 含义

sed (stream editor for filtering and transforming text)是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(Pattern Space),接着用 sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等。

sed 用法

sed 获取帮助

可使用如下命令,获取 sed 帮助。

[root@LeeMumu ~]# man sed

sed 命令格式

sed 的命令格式如下:

sed [OPTION]...  'script'  [input-file] ...

script 含义

script 指的是地址定界编辑命令,常用格式为‘地址定界 编辑命令’,如果地址定界和编辑命令之间有空格,需要使用单引号。

OPTION 常用选项

-n                                        #不输出模式空间中的内容至屏幕
-e script, --expression=script            #多点编辑
-f  /PATH/TO/SED_SCRIPT_FILE              #每行一个编辑命令
-r, --regexp-extended                     #支持使用扩展正则表达式

#有风险的命令,编辑原文件时,尤其是系统原有文件,一定要注意备份
-i[SUFFIX], --in-place[=SUFFIX]           #直接编辑原文件

地址定界

地址定界就是把相匹配的行送入到模式空间,如果地址定界为空则代表对全文进行处理,把文件中的内容逐行送入到模式空间。

空地址:对全文进行处理;
单地址:        
		#:指定行(# 代表数字) 
		/pattern/:被此模式所匹配到的每一行
地址范围:
		#1,#2:#1 和 #2 之间的所有行
		#,+#:# 和 #+1 之间的所有行
		#,/pattern1/:# 和匹配到 /pattern1/ 行之间的所有行
		/pattern1/,/pattern2/:匹配到 /pattern1/ 和匹配到 /pattern2/ 行之间的所有行
		$:最后一行
步进:~
		1~2:所有奇数行
		2~2:所有偶数行

编辑命令

对在模式空间中所匹配的行做编辑命令所代表的动作。

d:删除模式空间中的内容
p:显示模式空间中的内容
# p 编辑命令与 -n 的 OPTION 选项命令要区分清楚:
## p 代表对模式空间中的命令进行编辑动作(显示在正常输出中)
## -n 代表 sed 命令格式中的 OPTION 选项命令,不输出模式空间中的内容
## 当 -n 与 p 同时存在时,先执行编辑命令 p ,再执行 OPTION 选项命令 -n
a  \text:在行后面追加文本“text”,支持使用\n实现多行追加
i  \text:在行前面插入文本“text”,支持使用\n实现多行插入
c  \text:把匹配到的行替换为此处指定的文本“text”
w /PATH/TO/SOMEFILE:保存模式空间匹配到的行至指定的文件中
r /PATH/FROM/SOMEFILE:读取指定文件的内容至当前文件被模式匹配到的行后面,实现文件合并
=:为模式匹配到的行打印行号
!:条件取反(使用格式:地址定界!编辑命令)
s///:查找替换,其分隔符可自行指定,常用的有s@@@, s###等
      替换标记:
		 g:全局替换
		 w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中
		 p:显示替换成功的行

高级编辑命令

较少使用,可简单对高级编辑命令进行了解。

h:把模式空间中的内容覆盖至保持空间中
H:把模式空间中的内容追加至保持空间中
g:把保持空间中的内容覆盖至模式空间中
G:把保持空间中的内容追加至模式空间中
x:把模式空间中的内容与保持空间中的内容互换
n:读取匹配到的行的下一行覆盖至模式空间中
N:读取匹配到的行的下一行追加至模式空间中
d:删除模式空间中的行
D:删除多行模式空间中的所有行

正则表达式

因涉及到 Pattern

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值