QQ个性网:专注于分享免费的QQ个性内容

关于我们| 网站公告| 广告服务| 联系我们| 网站地图

搜索
编程 JavaScript Java C++ Python SQL C Io ML COBOL Racket APL OCaml ABC Sed Bash Visual Basic Modula-2 Logo Delphi IDL Groovy Julia REXX Chapel X10 Forth Eiffel C# Go Rust PHP Swift Kotlin R Dart Perl Ruby TypeScript MATLAB Shell Lua Scala Objective-C F# Haskell Elixir Lisp Prolog Ada Fortran Erlang Scheme Smalltalk ABAP D ActionScript Tcl AWK IDL J PostScript IDL PL/SQL PowerShell

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

日期:2025/04/08 13:09来源:未知 人气:57

导读:本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32521一、简介sed(Stream editor)是一个功能强大的文本流编辑器,主要用于对文本进行处理和转换。它适用于自动化处理大量的文本数据,能够支持诸如查找、替换、删除、插入等文本编辑操作。sed 是非交互式的,即它不会改变原始文件,除非显式指定。二、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 反向引用分组。

Sed排行

关于我们|网站公告|广告服务|联系我们| 网站地图

Copyright © 2002-2023 某某QQ个性网 版权所有 | 备案号:粤ICP备xxxxxxxx号

声明: 本站非腾讯QQ官方网站 所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告