首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
Google
首页 入门 Linux编程 系统管理 网络管理 Linux认证 Unix/BSD Linux数据库 Linux集群 Linux手册 Linux下载 Ubuntu 论坛 专题 RSS
您现在的位置: 中国IT实验室 >> Linux >> 其他Unix >> 正文

使用Unix命令行模式高效地进行文本编辑

编辑匹配的模式

回想一下在模式中将字符分组在一起的方括号示例,以及如何在替换文本中将它们视为普通字符。如果您希望在替换文本中包括字面匹配的模式,该怎么办呢?可以使用“和”号 (&) 来实现。此方法对于通过在匹配模式之前或之后放置文本来编辑匹配模式是非常有用的:

$ cat file

This is the beginning.

This is the middle.

This is the end.

$ sed 's/[Tt]h/>&>Thth>Thth>Thth

在匹配模式之后插入文本

使用 a 命令在给定的匹配模式后面添加一行文本:

$ sed -i '/pattern/a text' file

这并不替换与模式匹配的文本——它只是在第一个包含该模式的行后面添加文本。

在行开头插入文本

若要在每行开头插入文本,可以匹配脱字号元字符并提供要插入的文本。下面显示了如何向文件中的所有行添加电子邮件样式引用:

$ sed 's/^/> /' input.txt

> This line has trailing blanks.

> This line does not.

$

在行尾插入文本

同样的原理也适用于在每行结尾插入文本——匹配美元符号元字符并提供要插入的文本。下面演示了如何模拟 AIX cat 的 -vet 选项来标记尾随空格:

$ sed 's/$/$/' file

This line has trailing blanks. $

This line does not.$

$

删除文件中的行

d 命令删除给定的行。您可以在它前面附加行号、范围、要匹配或包括在斜杠中的模式。

若要删除文件中的第一行,可以使用以下命令:

$ sed -i 1d file

若要删除第 1 至第 10 行,可以使用以下命令:

$ sed -i 1,10d file

若要删除“BEGIN QUOTE”字符串的第一个实例到“END QUOTE”字符串的第一个实例之间的所有行,可以使用以下命令:

$ sed -i '/BEGIN QUOTE/,/END QUOTE/d' file

若要删除当前目录中扩展名为 .xml 的所有文件中第一行包含“”并且最后一行包含“""”的所有文本部分,可以使用以下命令:

$ sed -i '//,/<\/record>/d' *.xml

若要删除从第一行直到第一个空白行的所有内容,可以使用以下命令:

$ sed -i '/^> /d' file

(当在电子邮件消息或 Usenet 文章中使用时,前述单命令行程序将除去所有标头。)

若要删除所有以电子邮件样式引用开头的行,可以使用以下命令:

$ sed -i /^$/d file

若要删除文件的最后一行,可以使用以下命令:

$ sed -i '$d' file

删除尾随空格

如果文件中的行包含需要清除的尾随空格字符,在文本编辑器中人工查找并删除它们会非常麻烦,但是使用 sed 完成此任务将成为一个快速的单行操作。您可以搜索行尾之前出现一次或多次的字面空格字符,并将其替换为空字符:

$ cat -vet input.txt

This line has trailing blanks. $

This line does not.$

$ sed -i 's/ *$//' input.txt

$ cat -vet input.txt

This line has trailing blanks.$

This line does not.$

$

总结

通过从 UNIX 命令行运行单命令行程序,可以利用多种有意义和复合的方式(无需编辑器)对文本文件进行编辑。您这样做有许多很好的理由:为了提高速度和方便性,在无法或不适合使用交互式编辑的情况下可编写脚本,有时为了对单个文件或一组文件执行复杂编辑,这些编辑操作难于甚至无法在交互式应用程序中完成。本文使用三个普遍存在的编辑工具,通过许多简单文本编辑单命令行程序阐述了这一概念:cat、ed 和 sed。

上一页  [1] [2] [3] [4] [5] 

【责编:Zenghui】
中国IT教育
相关产品和培训
文章评论
 友情推荐链接
 专题推荐

 ·防范Linux病毒 打造没有病毒的乐土…
 ·Linux Shell编程实用指南…
 ·Linux日志分析与管理
 ·揭密Linux内存管理
 ·邮件服务Sendmail应用配置
 ·Linux 安全管理…
 ·Linux 下DNS服务器架设攻略…
 ·Linux 下的路由的配置与应用…
 ·专题:Apache实用手册
 ·全面剖析Linux文件系统
 今日更新
 认证培训
 频道精选
 Windows频道导航