第四章 编写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
分享到:
相关推荐
sed与awk 编写脚本利器。
Vim-101-hacks、Sed-and-Awk-101-Hacks、Linux-101-hacks 英文版(高清)PDF
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_中英文高清版
English 2nd Edition 2002 chm format Summary of sed & awk
免积分下载。
超好的sed 和 awk 技巧书籍,作者把工作中的技巧写成了一本书,短小精悍,很有启发性。
sed和awk具有相同的命令行语法,以脚本的形式接收用户的命令。因为所有这三个程序都使用UNIX正则表达式,因此书中用一章的篇幅来介绍UNIX的正则表达式语法。 然后,本书介绍如何编写sed脚本。从编写几行简单的脚本...
sed与awk(第二版)学习笔记
包括: 1. sed与awk+第三版(中文高清晰),内容非常全面详细,看了觉得很不错,学习sed和awk的必备书籍。 2. Effective awk Programming, 4th Edition 3. Sed与awk第二版(高清版).pdf
Sed与awk第二版(高清版).pdf
sed与awk使用指南 如果侵犯了您的权利,请您联系我。 本书介绍了一组名字奇特的 UNIX 实用工具 :sed 和 awk 。这组实用工具有很多 同的特征,譬如正则表达式在模式匹配在 sed 和 awk 的使用中是很重要的部 分,因此...
sed和awk是用户、程序员和管理员应用的工具。之所以称为sed是因为它是一个流编辑器(stream editor),用于对许多文件执行一系列的编辑操作。awk是根据它的开发者Aho、Weinberger和Kernighan命名的。awk是一种编程...
sed 和 awk 命令的详细使用方法和说明,英文版,高清,带目录。
sed & awk 第二版 例程 源代码 源码 sed & awk sourcecode
包括sed-4.2.1-setup.exe、sed-4.2.1-dep.zip、sed-4.2.1-bin.zip
sed与awk+第三版和源代码
本书介绍了一组名字奇特的UNIX实用工具:sed和awk。这组实用工具有很多共同的特征,譬如正则表达式在模式匹配中的应用等。模式匹配在sed和awk的使用中是很重要的部分,因此本书详尽解释了UNIX正则表达式的语法。一般...