写点什么

软件测试学习笔记丨 Linux 三剑客 -sed

作者:测试人
  • 2024-10-15
    北京
  • 本文字数:807 字

    阅读完需:约 3 分钟

本文转自测试人社区,原文链接: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 反向引用分组。


软件测试开发免费视频教程分享


发布于: 刚刚阅读数: 4
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试学习笔记丨Linux三剑客-sed_软件测试_测试人_InfoQ写作社区