`

sed实例分析(三)--s命令中的&与\1-\9

 
阅读更多

一、&与\1-\9用法说明:

s命令语法:s/regexp/replacement/

&字符用于完全替换regexp匹配,如 s/man/wo&/,将man替换成woman

\1字符用于替换regexp中无字符()中的内容,\1替换第一个();\2替换第二个();如/s/I \(love\) \(you\)/\2\1me/,将I love you替换成you love me

二、实例1--删除连续重复的行:

cat file

1111111

222222

222222

333333

444444

444444

444444

sed'$!N;/^\(.*\)\n\1$/!P;D file

1111111

222222

333333

444444

使用行交叉模式,当模式空间的两行重复将不打印模式空间

$!N 读取的行不是最后一行,附加新行到模式空间

/^\(.*\)\n\1$/!P 如果模式空间的行匹配 line\nline即重复的行,则不打印

下面使用简化的sed流程分析

PATT:1111111

$!N-->PATT:1111111\n222222

/^\(.*\)\n\1$/!P -->OUT:1111111

D-->PATT:222222

$!N-->PATT:222222\n222222

/^\(.*\)\n\1$/!P -->OUT:

D-->PATT:222222

$!N-->PATT:222222\n333333

/^\(.*\)\n\1$/!P -->OUT:222222

D-->PATT:333333

$!N-->PATT:333333\n444444

/^\(.*\)\n\1$/!P -->OUT:333333

D-->PATT:444444

$!N-->PATT:444444\n444444

/^\(.*\)\n\1$/!P -->OUT:

D-->PATT:444444

$!N-->PATT:444444\n444444

/^\(.*\)\n\1$/!P -->OUT:

D-->PATT:444444

$!N-->PATT:444444\n444444

/^\(.*\)\n\1$/!P -->OUT:

D-->PATT:444444

OUT:444444

三、实例二-字符串翻转:

cat file

test

sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'file

tset

/\n/!G 模式空间不包含\n字符就添加保持空间的空行到模式空间

s/\(.\)\(.*\n\)/&\2\1/ 替换

//D 匹配最近的一个正则表达式,执行D命令

PATT:test
COMM:/\n/!G
PATT:test\n
COMM:s/\(.\)\(.*\n\)/&\2\1/
PATT:test\nest\nt
COMM://D
PATT:est\nt
COMM:/\n/!G
COMM:s/\(.\)\(.*\n\)/&\2\1/
PATT:est\nst\net
COMM://D
PATT:st\net
COMM:/\n/!G
COMM:s/\(.\)\(.*\n\)/&\2\1/
PATT:st\nt\nset
COMM://D
PATT:t\nset
COMM:/\n/!G
COMM:s/\(.\)\(.*\n\)/&\2\1/
PATT:t\n\ntset
COMM://D
COMM:\ntset
COMM:/\n/!G
COMM:s/\(.\)\(.*\n\)/&\2\1/
COMM://D
COMM:s/.//
PATT:tset



 

 

 

分享到:
评论

相关推荐

    通用线程sed 实例

    ### 通用线程sed实例详解 #### sed简介与特点 sed是一种极其强大的UNIX流编辑器,因其高效且灵活的功能在日常运维与开发工作中备受青睐。本文将深入介绍sed的基础概念及其高级用法,并通过一系列实用示例帮助读者...

    grep,sed,awk命令实例大练习

    ### grep、sed、awk命令实例大练习 在Linux或Unix环境中,`grep`、`sed`和`awk`是三个非常强大的文本处理工具。通过掌握这些工具的基本用法及高级功能,用户可以高效地处理各种文本文件。下面将详细介绍如何使用...

    sed命令和awk编程教程

    #### 二、sed命令应用实例 - **例2-1**:使用-n选项 - `sed -n '1p' input`:仅打印文件`input`的第一行。 - `sed '1p' input`:打印文件`input`的第一行及所有其他行。 - **例2-2**:打印范围内的行 - `sed -n...

    Unix流编辑器sed实例+(全三部分)

    ### Unix流编辑器sed实例+(全三部分)详解 #### 一、引言 在Unix和Linux环境下,存在一种功能强大且高效的文本编辑工具——**流编辑器sed**。本文旨在通过一系列实例来深入探讨sed的基本用法及其高级功能,帮助读者...

    linux sed命令详解

    在处理过程中,`sed`会将每一行内容存储在内存中的一个名为“模式空间”(Pattern Space)的缓冲区内,然后应用一系列预定义的命令来修改该行的内容。一旦处理完成,这一行的内容会被输出到标准输出设备(通常是终端...

    sed基础实例练习

    比如,应该有诸如`sed 's/原字符串/新字符串/' 文件名`这样的命令,它用于替换文件中的指定字符串。在文档内容的表述中,虽然出现了较多乱码字符,但可以看出,作者尝试通过示例来解释sed命令的结构和作用。 总之,...

    sed高级用法学习笔记和实例

    #### 三、sed的基本命令格式 基本格式为 `sed [选项] '命令' 文件` 或者 `sed -f 脚本文件 文件`。其中,“命令”可以是单个命令也可以是复合命令。 #### 四、sed命令参数详解 - **-r**: 支持使用扩展正则表达式...

    linux-Sed命令详解.zip

    1. **模式匹配与替换**:Sed支持正则表达式,`s/模式/替换字符串/`命令可以实现模式匹配并替换。例如,`s/pattern/newpattern/`会将所有包含"pattern"的行中的"pattern"替换为"newpattern"。 2. **行地址范围**:...

    sed 实例讲解

    ### sed 实例讲解 在Unix和类Unix系统中,sed(stream editor)是一个强大的文本处理工具,用于执行基本的文本转换工作。它读取输入流(可以是文件或标准输入),进行模式匹配和替换,然后将结果输出到标准输出。...

    sed&awk;

    sed 's/.*\[\(.*\)\].*/\1/' access.log | awk '{count[$1]++} END {for (i in count) print i, count[i]}' ``` #### 五、总结 通过上述介绍,我们可以看出`sed`和`awk`都是非常强大的文本处理工具,它们各自拥有...

    linuxsed与awk第三版

    1. Sed基础:介绍sed的基本命令,如`s`(替换)、`a`(追加)、`i`(插入)和`d`(删除)等。 2. 正则表达式:深入解析sed中的正则表达式语法,包括字符类、量词、锚点和分组等。 3. 行地址和范围:如何使用行地址来...

    Sed与awk第三版(高清版)

    《Sed与Awk第三版》是一本针对Linux和Unix系统中两个强大的文本处理工具——sed和awk的详细教程。这两个工具在系统管理和自动化任务中起着至关重要的作用,尤其对于那些需要处理大量文本数据的场景。以下是关于sed和...

    Sed与awk第三版 高清版

    例如,书中可能会介绍如何使用Sed的命令行选项和内建命令,如`n`(打印下一行)、`p`(打印当前行)、`d`(删除当前行)以及`s`(替换模式空间中的文本)。同时,Awk的部分可能会讲解其内置变量,如`$0`(整个记录)...

    sed command

    通过以上分析可以看出,`sed`命令具有极强的功能性和灵活性,在文本处理方面有着广泛的应用。掌握`sed`的使用方法不仅能够提高工作效率,还能帮助解决各种文本处理难题。希望本篇内容能够为你理解和运用`sed`命令...

    sed & awk 汇总

    - 类似于 `s/` 命令,但不会替换文本中的其他实例,并且立即退出 `sed`。 7. **地址范围**: `address1,address2` - 对指定范围内的行执行操作。 8. **条件执行**: `address1, address2 { command1; command2; }`...

    Sed&Awk 2th Edition

    书中的实例可能涵盖了从基本的文本替换和过滤,到复杂的正则表达式应用,再到利用Awk进行数据分析。此外,书中还可能讲解了如何编写脚本文件,将Sed和Awk的命令组合在一起,以解决更复杂的问题。 通过学习这本书,...

    实例秒解sed和awk的秘密

    在Linux系统中,`sed`和`awk`是两个非常重要的文本处理工具,它们在处理大量数据时展现出强大的威力。本文将深入解析这两个命令的使用方法,并通过实例帮助你快速掌握它们的秘密。 **sed(Stream Editor):** `...

    玩透sed:探究sed原理

    1. **命令模式(Command Pattern)**:`sed`命令通常以`/pattern/command`的形式出现,其中`pattern`是匹配模式,`command`是执行的操作。例如,删除所有包含"example"的行,可以使用`sed '/example/d'`。 2. **...

    sed与awk(第二版)

    `s`是替换命令,`g`是全局替换标志,表示替换每行中所有匹配的实例。 awk(AWK Programming Language)则更加强大,它是一个编程语言,专门设计用于处理文本。awk可以解析文件的每一行,并基于指定的模式(Pattern...

Global site tag (gtag.js) - Google Analytics