`
xiangzi21
  • 浏览: 30041 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

sed与awk菜鸟的笔记--第四章 编写sed脚本

阅读更多

 

第四章 编写sed脚本

 

sed脚本原理是将整个脚本分别在每行逐行执行.不是先读取脚本中的一样,然后在全文件执行,再读脚本下一行...

 

$ sed 's/pig/cow/g' file :将文件中所有的pig替换成cow.

$ sed '/aa/s/pig/cow/g' file :将文件中匹配"aa"的行中的pig替换成cow. 即根据前面的匹配条件先过滤一下,再替换.

 

删除命令:d

d:删除所有行 例:sed 'd' file #不会有输出

1d:删除第一行 例:sed '1d' file #输出file文件除了第一行的内容

$d:删除最后一行(不能与正则表达式的$混淆,正则要放在斜杠中.这里只表示删错最后一行) 例:sed '$d' file #输出file文件除了最后一行的内容

/^$/d:删除空行 例:sed '/^$/d' file #输出文件file删除空行后的内容

/^\.TS/,/^\.TE/d :删除匹配.TS和.TE之间的所有行.(逗号前后提供了两个地址,说明指定了命令执行范围.)

/^\.TS/,/^\.TE/!d :删除除了匹配.TS和.TE之间的所有行.(跟在地址后面的!会反转匹配,结果正好与上例相反)

50,$d :删除50到最后一行的所有行.

1,/^$/d :删除从第一行直到第一个空行的所有行.命令应用于所有随后的行,直至第二个地址被匹配,所以如果后面没空行,则删除所有的行.(此例说明可以混合使用行地址和模糊地址).

 

分组命令:用大括号将一地址嵌套在另一地址中,或相同地址执行多个命令.

/AA/,/BB/{

/^$/d

}

以上脚本含义:删除匹配AA和BB两地址范围内的所有空行.(书中说左大括号必须在行末,右大括号必须独占一行,而且右大括号后没空格.试一下好像不用这么麻烦,也可能是版本问题)

 

/AA/,/BB/{/^$/d;s/pig/cow/}:在匹配AA和BB两地址范围内的所有行执行两条命令1.删除空行 2.将第一个pig替换为cow.(将组合命令凡在大括号中,对前面匹配行执行.格式我没有安上面所说的也OK)

 

 

编写一个脚本,要求如下:

1.用段落宏(.LP)取代所有空行.

2.删除每行的所有前导空格.

3.删除打印机下划线的行,即以"+"开始的行.

4.删除添加在两个单词之间的多个空格.

 

将下面填写在一个脚本文件中:

s/^$/.LP/ #用.LP替换每个空行

/^+ */d #删除以加号开始,并且后面跟有至少一个空格的任意行

s/^ *// #删除行开始的n个空格

s/ */ /g #将连续多个空格替换为一个空格

s/\. */. /g #将句点后跟多个空格的替换为据点后跟两个空格

 

提取宏定义:

$ sed -n '/^\.deBL/,/^\.\.$/p' file #只打印以".deBL"开头的行和以".."自成一行之间的行. -n:阻止打印整个文件 p:显示指定打印行.

//以上指定了打印命令p的范围,这就是与grep(不能匹配行范围)的功能区别.

 

将以上写入sh脚本中,"BL"由用户输入的第一个参数自行定义:

#!/bin/sh

$ sed -n "/^\.de$1/,/^\.\.$/p" file

//以上脚本sed执行的命令必须用双引号,不能用单引号,否则不能解析参数$1

 


0
0
分享到:
评论

相关推荐

    sed and awk 101 hacks.pdf

    Sed和Awk是UNIX和Linux系统中极为重要的流编辑器和文本处理工具,它们能够通过简单的命令或脚本高效处理文本文件,实现复杂的文本转换和报告生成。接下来,我们将根据提供的文件内容详细地说明Sed和Awk的关键知识点...

    Sed与Awk (中文版)

    本书是sed与awk的第二版,由O'Reilly & Associates出版,并授权给机械工业出版社在中国发行。书中提及的ISBN7-111-11527-9为本书的标识。第一版由Dougherty和Robbins著,张旭东等人翻译,机械工业出版社出版于2003年...

    Vim-101-hacks、Sed-and-Awk-101-Hacks、Linux-101-hacks 英文版(高清)PDF

    "Sed-and-Awk-101-Hacks"可能包含如何使用基本的sed命令,如替换、删除、插入行,以及使用地址范围进行特定操作。此外,还可能涉及正则表达式在sed中的应用,如查找和替换模式,以及使用sed进行批量文本编辑。 3. ...

    Sed与awk_中英文高清版

    《Sed与Awk》是IT领域中关于文本处理的经典之作,主要讲解了两种强大的命令行工具:Sed(流编辑器)和Awk(数据处理语言)。这两款工具在Linux和Unix系统中广泛使用,尤其适用于数据提取、转换、报告生成等任务。 ...

    SED与AWK 高清第三版

    《SED与AWK 高清第三版》是一本专注于Linux系统中强大文本处理工具sed和awk的教程。在Linux环境中,sed和awk是不可或缺的工具,它们能够高效地处理大量文本数据,进行搜索、替换、格式化等操作,极大地提高了运维...

    Sed与awk第二版(中文高清版)

    Sed与awk(第二版)这本书作为国外的经典教材,经过翻译后,为中文读者学习这些工具提供了极大的便利。它不仅系统地介绍了sed和awk的使用方法,还通过实例演示了如何编写有效的脚本来处理文本数据。对于那些希望提高...

    sed-awk-2nd-edition.chm

    The book begins with an overview and a tutorial that demonstrate a progression in functionality from grep to sed to awk. sed and awk share a similar command-line syntax, accepting user instructions in...

    sed & awk Pocket Reference-2nd-2002.chm

    English 2nd Edition 2002 chm format Summary of sed & awk

    Sed与awk第二版(高清版).pdf

    根据提供的文件信息,我们可以从《Sed与awk第二版(高清版).pdf》这一资源中提炼出关于Sed和awk这两个强大的文本处理工具的相关知识点。虽然免责声明部分并未提供具体的技术内容,但我们可以通过书籍的标题、描述及...

    sed和awk的必备书籍

    包括: 1. sed与awk+第三版(中文高清晰),内容非常全面详细,看了觉得很不错,学习sed和awk的必备书籍。 2. Effective awk Programming, 4th Edition 3. Sed与awk第二版(高清版).pdf

    sed与awk(第二版) - PDF(带目录)

    sed和awk具有相同的命令行语法,以脚本的形式接收用户的命令。因为所有这三个程序都使用UNIX正则表达式,因此书中用一章的篇幅来介绍UNIX的正则表达式语法。 然后,本书介绍如何编写sed脚本。从编写几行简单的脚本...

    sed & awk 第二版 例程 源代码 源码 sed & awk sourcecode

    《sed与awk 第二版 例程 源代码》是一部深入探讨文本处理工具sed和awk的经典著作。这本书的核心在于其丰富的例程和源代码,旨在帮助读者掌握这两个强大的命令行工具的用法。sed(流编辑器)和awk(编程语言)在IT...

    Sed & Awk 2nd Edition

    第四章:讲解如何编写sed脚本,包括sed的工作原理和脚本编写技巧。 第五章:涵盖了基本的sed命令,包括对文件进行插入、删除和修改操作的命令。 第六章:介绍了高级的sed命令,帮助读者更加深入地掌握sed的高级...

    Sed与awk第二版(高清版)

    《Sed与Awk第二版》是一本深入探讨文本处理工具Sed和Awk的经典教程。这本书以高清的形式呈现,旨在帮助读者更好地理解和掌握这两种强大的命令行工具。Sed(Stream Editor)和Awk(Aho-Wedderburn-Kernighan)在Linux...

Global site tag (gtag.js) - Google Analytics