📄 00000019.htm
字号:
<BR> while (i <= 3) { <BR> <BR> print $i <BR> <BR> i++ <BR> <BR> } <BR> <BR> }' <BR> <BR> do <BR> <BR> body <BR> <BR> while (condition) <BR> <BR> 这个 do loop 执行 body 一次,然後只要 condition 是真则会重复执行 body。即使 <BR>开始时 condition 是伪,body 也会被执行一次。 <BR> <BR> 下面的例子会印出每个输入记录十次。 <BR> <BR> gawk '{ i= 1 <BR> <BR> do { <BR> <BR> print $0 <BR> <BR> i++ <BR> <BR> } while (i <= 10) <BR> <BR> }' <BR> <BR> for (initialization; condition; increment) <BR> <BR> body <BR> <BR> 此叙述开始时会执行initialization,然後只要 condition是真,它 <BR> <BR> 会重复执行body与做increment 。 <BR> <BR> 下面的例子会印出每个输入记录的前三个栏位。 <BR> <BR> gawk '{ for (i=1; i<=3; i++) <BR> <BR> print $i <BR> <BR> }' <BR> <BR> break 会跳出包含它的 for、while、do-while 循环的最内层。 <BR> <BR> 下面的例子会找出任何整数的最小除数,它也会判断是否为质数。 <BR> <BR> gawk '# find smallest divisor of num <BR> <BR> { num=$1 <BR> <BR> for (div=2; div*div <=num; div++) <BR> <BR> if (num % div == 0) <BR> <BR> break <BR> <BR> if (num % div == 0) <BR> <BR> printf "Smallest divisor of %d is %d\n", num, div <BR> <BR> else <BR> <BR> printf "%d is prime\n", num }' <BR> <BR> continue 使用于 for、while、do-while 循环内部,它会跳过循环体的剩余部分 <BR>,立刻进行下一次循环的执行。 <BR> <BR> 下面的例子会印出 0 至 20 的全部数字,但是 5 并不会被印出。 <BR> <BR> gawk 'BEGIN { <BR> <BR> for (x=0; x<=20; x++) { <BR> <BR> if (x==5) <BR> <BR> continue <BR> <BR> printf ("%d",x) <BR> <BR> } <BR> <BR> print "" <BR> <BR> }' <BR> <BR> next 语句强迫 gawk 立刻停止处理目前的行而继续下一个输入行。 <BR> <BR> exit 语句会使得 gawk 程式停止执行而跳出。然而,如果 END 出现,它会去执 <BR>行 END 的 actions。 <BR> <BR> <BR> 自定义函数 <BR> <BR> 你可以定义自己的函数,其格式是 <BR> <BR> function name (parameter-list) { <BR> <BR> body-of-function <BR> <BR> } <BR> <BR> <BR> name 是所定义的函数名字。 parameter-list 是函数的变量列表。变量间使用逗号分 <BR>开。 <BR> <BR> 函数可以在程序的任何地方定义,不过习惯上总是定义在程序的开头部分。 <BR> <BR> 下面这个例子,会将每个记录的第一个栏位之值的平方与第二个栏位之值的平方加 <BR>起来。 <BR> <BR> {print "sum =",SquareSum($1,$2)} <BR> <BR> <BR> function SquareSum(x,y) { <BR> <BR> sum=x*x+y*y <BR> <BR> return sum <BR> <BR>} <BR> <BR> 如果你熟悉任何编程语言,那么掌握awk都是很轻松的事情,如果你不喜欢它,那么你 <BR>可以参考我们下面介绍的perl。 <BR> <BR> 11.3 Perl <BR> <BR> Perl是从awk发展起来的,它由Larry Wall在1986年发明。它是一种功能强大的编程语 <BR>言,而且可以在许多平台上使用。实际上,你完全可以将Perl作为一种标准编程语言( <BR>而不是脚本语言)来使用,笔者非常喜欢它,并且建议所有不想学习C语言的UNIX管理员 <BR>应该掌握Perl的基本编程技术。目前,常用的版本是perl 5,几乎所有的Linux发行版本 <BR>都会包含它,缺省时,linux的perl 5安装在/usr/bin下,命令是/usr/bin/perl. <BR> <BR> <BR> 11.3.1 基本语法 <BR> <BR> <BR> perl的语法介于C和basic之间,一个perl程序由若干行组成,使用的时候由perl解释 <BR>程序解释执行。每个完整的行都应该用分号结尾。 <BR> <BR> Perl的基本语法是这样的: <BR> <BR> ① 变量和运算符 <BR> <BR> 在perl中,所有变量都不需要提前声明。一旦对某个变量赋值,就自动产生了这个变 <BR>量。perl的变量有普通变量,数组和关联数组三种。普通变量就是数值和字符串,要声 <BR>明一个普通变量,在变量名字前面加上$,例如 <BR> <BR> $string1="aaa"; <BR> <BR> $test=5; <BR> <BR> $u=1.33; <BR> <BR> 同样,访问变量内容也需要使用$符号。 <BR> <BR> <BR> 数组用@字符标志,如 <BR> <BR> @name1=("tom","marry","john"); <BR> <BR> $b=$name[0]; $b现在等于"tom" <BR> <BR> $b=@name[0];跟上一句是一样的 <BR> <BR> $name[0,2]=["help","so"];现在@name等于[“help","marry","so"] <BR> <BR> @name[0,2]==@name[2,0];交换0,2元素 <BR> <BR> 数组的大小不是固定的,你可以动态地添加数组元素,例如 <BR> <BR> $name[3]="app";增加一个元素 <BR> <BR> 直接访问数组名字将得到数组中元素的个数,例如: <BR> <BR> $count=@name;将name的元素个数存放到$count变量中。 <BR> <BR> <BR> 关联数组是一种特殊的数组,每个元素都由一对元素构成。或者说,关联数组是一种 <BR>下标不是整数的数组,要声明一个关联数组,使用%符号,例如: <BR> <BR> %arr=(1,"one",2,"two",3,"three",4,"four"); <BR> <BR> 这时可以用前面的值(key)来索引后面的值: <BR> <BR> $one=$arr{1};这时$one等于"one" <BR> <BR> 注意关联数组的访问方式,是使用$关联数组名字[索引号]。 <BR> <BR> 你可以把关联数组看成数据库的一种实现。与一般的数组一样,其大小也可以动态调 <BR>节: <BR> <BR> $arr{5}="five";增加一对数据。 <BR> <BR> 可以将关联数组简单地变成普通数组,例如 <BR> <BR> @X=%arr;现在@X的内容是X[0]="1",X[1]="one",…………… <BR> <BR> perl的运算符与C语言以及我们介绍的gawk很相似,包括普通的+-*/%以及来自C语言的 <BR>逻辑运算符&&(和),||(或),等等,下面是一个列表: <BR> <BR> + - * / 四则运算,注意perl的除法是浮点除法 <BR> <BR> $a % $b a对b取余数,例如3%2的结果是1 <BR> <BR> $1 .. $2 区段运算符,这个算符取出$1和$2中间的所有值,例如1..9返回一个表 <BR>1,2,………9。通常用这个命令初始化一个数组,例如:<A HREF="mailto:@dec=1..9;@oth=(1..26,'A">@dec=1..9;@oth=(1..26,'A</A> <BR>'..'Z')等等。 <BR> <BR> = 赋值算符 <BR> <BR> > < >= <= == != <BR> <BR> 这几个算符是数字之间的比较算符。 <BR> <BR> perl中没有专门的boolean型变量,而是象C语言一样认为所有不为零的量为真值,而 <BR>0或者空字符串为假。与C语言类似,Perl支持以下的逻辑运算符: <BR> <BR> && 与 || 或 ! 非 <BR> <BR> 同样,perl也支持位运算:&nb
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -