文本处理工具之sed的用法

本文详细介绍sed流编辑器的工作原理及应用实例,包括sed的基本概念、语法格式、常用选项与命令等,并通过具体案例演示如何使用sed进行文本处理。

目录:1.sed概述
2.sed的语法
3.sed的一些常用选项和命令
4.用法举例
一.sed的概述
1.sed是什么
sed是一种流编辑器,它一次处理一行内容。处理时,把当前 处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后 ,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循 环。如果没有使诸如‘D’的特殊命令,那会在两个循环之间 清空模式空间,但不会清空保留空间。这样不断重复,直到 文件末尾。文件内容并没有改变,除非你使用重定向存储输 出。
2.sed的运行流程
sed是将文本一行一行的提取到模式空间,用脚本进行处理,一定命令下进入保持空间然后再进入模式空间再打印出来。(保持空间里的内容不能直接打印,必须要进入模式空间后才能打印出来)
文本处理工具之sed的用法
(图中蓝色的箭头表示文本或文件不进入保持空间的情况,红色的箭头表示进入保持空间的情况)
二.sed的语法格式
sed 选项... [脚本指令] [输入文件]
三. 常用选项和命令
常用选项文本处理工具之sed的用法(当要执行多个命令时除了可以用-e进行多点编辑还可以用分号把多个命令隔开或者\加回车换行输入。三种方式都可以实现执行多条命令)

]# sed -e 's/1/2/' -e 's/3/4/' 123.txt
]# sed 's/1/2/';'s/3/4/' 123.txt
]# sed ' >s/1/2/ >s/3/4/' 123.txt (这里>表示换行)
常用命令文本处理工具之sed的用法
地址定界:
(1) 不给地址:对全文进行处理
(2) 单地址: #: 指定的行 /pattern/:被此处模式所能够匹配到的每一行
(3) 地址范围: #,# #,+# /pat1/,/pat2/ #,/pat1/
(4) ~:步进 1~2 奇数行 2~2 偶数行
四。实际例子 1. 处理/etc/fstab路径,使用sed命令取出其目录名
文本处理工具之sed的用法
这里用到了替换的命令把别的内容都替换成目录名 然后只显示替换后的内容从而达到题目的意思。
2.删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行。 处理前 文本处理工具之sed的用法处理后文本处理工具之sed的用法
这里先用-r支持正则表达式把行首的#以及后面若干个空格的行表示出来再用d删除从而达到题目要求。
3.在/etc/fstab文件中不以#开头的行的行首增加#号
文本处理工具之sed的用法
截取部分内容
文本处理工具之sed的用法
用-r支持正则表达式 然后把行首的^替换成#从而达到题目的要求
4.将文本文件的n和n+1行合并为一行,n为奇数行
文本处理工具之sed的用法查看原文件
文本处理工具之sed的用法
利用N的用法把读取的下一行追加到模式空间然后把换行符替换成 ' , ' 从而达到题目要求。

转载于:https://blog.51cto.com/13572749/2068760

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值