admin管理员组

文章数量:1530859

2024年5月24日发(作者:)

Chapter

13

sed和awk入门

设计Script时,有时候需修改脚本,例如:删除或置换某些关键词。像这种在Script执

行过程动态修改文件的做法,称为流编辑。具有流编辑能力的工具,称为流编辑器(stream

editer)。sed是这方面的佼佼者,可补Bash的不足。另外,Script执行时可能要制作报表,

Linux Shell

呈现各字段信息。传统上,能和Bash完美搭配的,非awk莫属。

本章将介绍这两个强大工具的基本用法,熟悉这两者,可让你的Script如虎添翼,威力

大增。

13.1 正则表达式

在介绍sed和awk之前,要先具备正则表达式的基本知识。

正则表达式是组成“样式”的基本语法,而“样式”是运用sed和awk必备的能力。sed

和awk相同的运行方式是:只要符合“样式”的数据行,就对它执行指定的“操作”。因此,

了解样式的基本语法,运用sed和awk才能得心应手。

何谓正则表达式

正则表达式是一种描述的方法,一种小型的语言,可表示某种样式或若干种样式的组合,

它的威力在于仅需几个简单的符号,便可代表许多字符串共同的样子。这是固定样式无法比

拟的,例如,样式Shell,只能比对固定的字符串,作用不大,但若改成sh*,却可比对 she、

Shell、short等多种字符串,涵盖面较大,因此,发挥的作用较强。

以下介绍正则表达式的语法:

.一点代表一个字符

. 代表任意的字符。

例1:样式 .T. ,代表3个字符,中间是T,左右两边是任意的一个字符。

例2:...

代表字符长度是3的字符串。若想比对 . 这个字符本身,需加上转义字符(),写成.。

例如:样式代表data.后接3个字符,如、、data.123等,都符合这个样

式,但data1234就不符合了,因为4个点最左边的那个点,已经用转义其特殊意义,还原为.

这个字符本身,因此,....和1234比对不符。

264

本文标签: 样式代表基本字符字符串