软件测试学习笔记丨 Linux 三剑客 -sed
本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32521
一、简介
sed(Stream editor)是一个功能强大的文本流编辑器,主要用于对文本进行处理和转换。
它适用于自动化处理大量的文本数据,能够支持诸如查找、替换、删除、插入等文本编辑操作。
sed 是非交互式的,即它不会改变原始文件,除非显式指定。
二、sed 基本用法与常用参数
语法结构:sed [addr]x[options] 'expression' fileaddr:指定操作的行范围,可以是具体行号或匹配的模式。x:表示编辑命令,如 s(替换)、d(删除)、p(打印)。options:用于指定额外的操作,如-e、-n、-i 等。
2.1 sed 常用选项与参数
2.2 pattern 表达式
1. 行数与行数范围匹配
在 sed 中,可以指定单行或多行进行操作。
指定单行:匹配特定行进行编辑操作。sed '20p' file.txt
指定行范围:通过行号范围操作一系列行。sed '30,35d' file.txt
从某行到文件末尾:sed '20,$d' file.txt
2. 正则表达式匹配
sed 可以使用正则表达式来匹配某一行或多行,/pattern/ 表示匹配某个正则模式。
匹配包含模式的行:sed '/pattern/p' file.txt
删除匹配行:sed '/error/d' file.txt
替换匹配行:sed '/hello/s/world/universe/' file.txt
3. 区间匹配
通过指定两个匹配模式的范围,sed 可以操作特定区间的行。格式为 //,//。
指定模式的区间匹配:sed '/start/,/end/p' file.txt
删除区间匹配的行:sed '/BEGIN/,/END/d' file.txt
对区间进行替换:sed '/start/,/end/s/foo/bar/' file.txt
4. 多个匹配条件
可以使用逗号 , 来结合行号或正则表达式,以灵活匹配行数和模式。
按行号和正则结合:sed '10,/pattern/d' file.txt
多行范围和模式结合:sed '20,40s/foo/bar/' file.txt
2.3 sed action 表达式
2.4 行数操作
打印特定行:sed -n 2p
删除最后一行:sed $d
2.5 s 表达式
s 表示替换;
s 后面的追加字符可以为任意字符;
g 表示全局匹配;
&表示匹配内容。
2.6 反向引用
使用()对数据进行分组;
使用\1 \2 反向引用分组。
软件测试开发免费视频教程分享
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/83b16aaa32f2004c7417f9ffd】。文章转载请联系作者。
评论