grep3大shell文本处理工科具之awk的行使

By admin in 美高梅手机版4858 on 2019年4月15日

1门语言,过滤内容(擅长取列)

*留神: awk的表明式必要利用单引号”

awk

一、awk命令

awk是一种编制程序语言,用于在linux/unix下对文本和多少进行拍卖(gawk –
pattern scanning and processing
language)。centos7中的awk是gawk的链接。它协理用户自定义函数和动态正则表明式等先进功效,是linux/unix下的三个强有力编制程序工具。前面包车型客车grep、sed只是仅仅的工具,而awk已经是1门语言了,可见awk的效果将比较强硬

用法:
awk -F ‘分割记号’ ‘script’ files
awk [options] ‘script’ var=value file(s)
awk [options] -f scriptfile var=value file(s)

选项:
-F fs fs内定输入分隔符,fs能够是字符串或正则表明式,如-F:
-v var=value 赋值贰个用户定义变量,将表面变量传递给awk
-f scripfile 从剧本文件中读取awk命令

  -F “[, ]”  多分隔符

awk:编辑器(首要处理有规律的文书)

1、是什么
是二个编制程序语言。援助变量、数组、函数、流程序控制制(if…else/for/while)
单行程序语言。

2、对文本竖列的操作

awk命令可以方便的经过点名分隔记号将文件分成特定的列,然后在针对分出去的竖列举办操作

一、呈现test.txt文书档案的第一列前五行。

awk -F ‘:’ ‘{print $1}’ test.txt | head -n 5

命令解释:-F ‘:’
正是说那些文件以:作为分隔符,大家做尝试的是passwd文件,它本人就被:分割成了柒段,'{}’中正是操作的讲述,命令中的print
$1 正是显示第三列。

美高梅手机版4858 1

二、展现test.txt文件全体竖列的内容

awk -F ‘:’ ‘{print $0}’ test.txt
awk ‘{print $0}’ test.txt

专注与上一条命令的界别,$一代表第叁列,$0代表全体列。
美高梅手机版4858 2

效果上实在和cat一样。

3、awk也可以
awk命令在一贯不点名-F
分割符号或分割字符串时,暗中认可以空格只怕空白段作为分隔符

我们先创制3个测试文书档案,以空格作为分隔符
美高梅手机版4858 3

后咱们输入下列命令

awk ‘{print $1}’
awk ‘{print $1,$3}’
awk ‘{print $1,$2}’

美高梅手机版4858 4

能够看出awk自动把空格作为分段记号,不管是稍稍个空格。

4、指定#为展现分隔符展现特定列(注意不会潜移默化原有文件,只是影响展现)

awk -F ‘:’ ‘{print $1″#”$3″#”$7}’ test.txt

美高梅手机版4858 5

  $一 第贰列  $NF最后壹列

先后模型:

打印:awk ‘{print}’ a.txt
打字与印刷内定内容:awk ‘{print “hello”,5}’ a.txt
i++表示先赋值再加1
++i表示先加一再赋值
awk ‘BEGIN{i=6}{print ++i}’ a.txt
awk ‘BEGIN{i=6}{print i++}’ a.txt
BEGIN读入文本从前的操作
awk ‘{print i++}END{print “hhh”}’ a.txt
END读入文本之后的操作

2、工作流程
读取file、标准输入、管道给的数码,从第二行开首读取,逐行读取,看是还是不是匹配大家想要的多少(pattern方式相配),对数据开始展览拍卖,直到读完全体的行,退出awk程序(执行的每一条awk的下令)

3、awk般配效用举例

awk 寻觅操作时与sed命令1样,awk暗中认可帮助正则,不需求像grep -E , sed -r
壹样须求特地选项。
壹、找寻含首要字root的行

awk ‘/root/’ test.txt

美高梅手机版4858 6

二、搜索第一竖列中包罗oo字符的行。

sed -F ‘:’ ‘$1 ~/oo/’ test.txt

美高梅手机版4858 7

在意这一个波浪号~正是协作的意味。

三、搜索root和test任意相配当中三个所在的行的第三列和第3列

awk -F ‘:’ ‘/root/{$1,$3} /test/{$1,$3}’ test.txt
awk -F ‘:’ ‘/root|test/ {print $0}’ test.txt

美高梅手机版4858 8

美高梅手机版4858 9

肆、搜索分割后第2段==0的行,也正是uid是零的行。

awk -F ‘:’ ‘$3==0’ test.txt

美高梅手机版4858 10

那壹列也能够拓展到任何数学表达式

awk -F ‘:’ ‘$3>=1000’ test.txt

美高梅手机版4858 11

awk -F ‘:’ ‘$3<=100’ test.txt

美高梅手机版4858 12

伍、寻觅分割后最后不是/sbin/nologin的行

awk -F ‘:’ ‘$7!=”/sbin/nologin” {print $1}’ test.txt

美高梅手机版4858 13

写正则时三个注意点:1是还是不是什么样的表明式为!=,2是字符串相配时要用双引号

陆、寻找第三列大于第四列可能第7列==/sbin/nologin的行

awk -F ‘:’ ‘$3>$4||$7==”sbin/nologin”‘ test.txt

美高梅手机版4858 14

||表示依然,&&表示还要。

7、寻找第三列大于第陆列和第十列==/sbin/nologin的行

awk -F ‘:’ ‘$3>$4||$7&&”sbin/nologin”‘ test.txt

美高梅手机版4858 15

      awk  ‘{print $一}’文件<==$1率先列,$1回之列…$NF最后1列,$(NF-1)

方式相称:

当匹配到//里的正则表明式后才实施后边命令
awk ‘/aaa/{print ++i,”hhh”}’ a.txt
打字与印刷第2个和第一个字段:$0表示拥有
awk ‘{print $1,$2}’ a.txt
点名字段变量:
awk ‘BEGIN{a=2}{print $a}’ a.txt

awk -F ‘;’ ‘{}’
-F钦点分隔符
\n 换行符
\t TAB键
\r 回车

3、语法
awk [-F field seperator] ‘pattern{action}’ [file]

4、awk内置变量功用举例

awk命令自带了有的变量:
OFS:系统一分配隔符
N昂Cora:总行数变量
NF:分割后最大段数数值

1、列出第二列大于一千数字只怕第7段包括/bash/的行,打印这么些行的一、三、七段,并且用#做展示分隔符。

awk -F ‘:’ ‘{OFS=”#”} $3>1000|| $7 ~ /bash/ {print $1,$3,$7}’
test.txt
awk -F ‘:’ ‘{OFS=”#”} {if ($3>1000|| $7 ~ /bash/){print
$1,$3,$7}}’ test.txt

美高梅手机版4858 16

美高梅手机版4858 17
二、呈现分段的最后1行

awk -F ‘:’ ‘{print $NF}’ test |head -n3

美高梅手机版4858 18
$NF 表示最终 NF表示段数,是三个数字

三、呈现文件,并在每壹行前增进行号==grep -n

awk -F ‘:’ {print NR”:”$0} test.txt
grep -n ” test.txt

美高梅手机版4858 19
美高梅手机版4858 20

4、呈现前十行,同时复习sed写法。

awk -F’:’ ‘NR<=10 {print $0}’ test.txt
sed -n ‘1,10’p test.txt

美高梅手机版4858 21

美高梅手机版4858 22
同时复习sed写法

5、利用awk命令给$1f赋值

head -n3 test.txt| awk -F ‘:’ ‘{OFS=”:”} $1=”root”‘ test.txt

美高梅手机版4858 23

注意与head -n3 test.txt| awk -F ‘:’ ‘{OFS=”:”} $1==”root”‘
test.txt的区别
美高梅手机版4858 24

例:awk  {if(NR<31 && NR>19)
 printf$1″\n”}’test. txt

表达式:

常量:数字和字符串型
字符串型在表达式中必须用引号括起来
字符串中得以应用转义体系,常用的转义连串有:
\n 换行 \t 水平制表符 \r 回车

赋值操作符:
++ i++=i+1
— i–=i-1

-F: 内定元数据列(字段)分隔符
‘pattern’: 相配情势
成效:匹配出来要拍卖的数量。
一)正则表明式
[root@localhost html]# awk ‘/^J/{print}’ awk_scores.txt

5、awk数学生运动算举例

1、总结第二段的值的和

awk -F ‘:’ ‘{(tot=tot+$3)}; END {print tot}’ test.txt

美高梅手机版4858 25

    N奥迪Q7代表行号,&& (and)并且  \n回车换行   $0代表整行

+= i+=j i=i+j

*=
/=
%=
^=

二)关系表明式 > < >= <= == != ~ !~
[root@localhost html]# awk ‘$2>90{print}’ awk_scores.txt

awk多分隔符使用  awk -F “[, ]” ‘{print $3″
“$6}’ ianTest.txt 

系统变量:

FS 输入定义字段分隔符,暗中同意为一个空格田野先生 seprator
OFS 输出的字段分隔符,暗许为一个空格
awk ‘BEGIN{FS=”:”;OFS=”T”}{print $1,$2}’ a.txt
翼虎S 输入记录分隔符,暗中同意为贰个换行符
O哈弗S 输出的笔录分隔符,默许为一个换行符
awk ‘BEGIN{RS=”\t”;ORS=” “}{print $1,$2}’ a.txt
NR 行数
awk ‘{print NR}’ a.txt
FN奥迪Q7 行数,多文本操作时会重新排序
awk ‘{print FNR}’ a.txt ming
NF 字段的个数,$NF表示最后3个字段
awk ‘BEGIN{FS=”:”}{print NF}’ a.txt
FILENAME 文件名
awk ‘{print FILENAME}’ a.txt

三) BEGIN模式在awk程序执行后,但从未施行拍卖动作前要做的做事(定义变量)
[root@localhost html]# awk ‘BEGIN{x=”abc”;print x}’

关联操作符和布尔操作符

肆)END情势 awk程序执行完处理动作后要做的做事。(善后)
[root@localhost html]# awk ‘BEGIN{print “Scores report”} {print}
END{print “Over!”}’ awk_scores.txt

论及操作符:

< 小于Less than
> 大于Greater than
<= 小于等于Less than or equal to
>= 大于等于Greater than or equal to
== 等于Equal to
NF==5NF(各个输入记录的字段数)的值和伍绝相比,如若结果为真,那么就实行相应的处理,不然不开展处理。
!= 不等于Not equal to
~ 匹配Matches
$5~/MA/ {print $1 “,”$6}
!~ 不匹配Does not match
留神:关系操作符==和赋值操作符=是例外的

{action}:处理动作,针对符合相配格局的数据开始展览的处理动作
假如未有pattern,唯有action,会对富有的文本行执行action的处理动作
比方没有action,唯有pattern,会打字与印刷出符合相配情势的行

布尔操作符:

|| 逻辑或Logical OR
&& 逻辑与Logical AND
grep3大shell文本处理工科具之awk的行使。! 逻辑非Logical NOT
先进行关系操作符再实施布尔操作符

拍卖文件格局:
[file]:
awk要处理的文本行(源数据),能够是别的命令的输出、管道过来的数码

格式化打字与印刷:

printf ( format-expression [, arguments] )
c ASCII 字符
d 十进制整数
f 浮点格式
s 字符串
x 无符号十6进制

4、指定awk的方式
1)命令行格局:
2)awk脚本:
#!/usr/bin/awk -f
BEGIN{
print “Scores Report”
}

常用举例:

语法 %-width.precision format-specifier
printf(” %d \t %s \n “, $5 , $8 )
printf(“|%10s|\n”, “hello”) 右对齐
printf(“|%-10s|\n”, “hello”) 左对齐
printf(“%*.*f\n”, 5, 3, myvar) 宽度5 精度3 打印myvar

{ print } //执行命令

向脚本传递参数

var=root
awk –F: -v a=$var ‘$1==a {print}’ /etc/passwd

求阶乘
5!=5*4*3*2*1

潜移默化控制流
break 退出循环
continue 终止当前的轮回,并从循环的顶部起始贰个新的大循环
影响主输入循环
next 读入下1行,并重回脚本的顶部
exit 使主输入循环退出并将控制转移到END

 

 

ll |awk ‘BEGIN{printf(“%-5s\t%s\n”),”name”,”size”;FS=” “;}/^-/{printf
(“%-5s\t%s\n”,$NF,$5);i+=$5}END{printf(“%-5s\t%s\n”),”total”,i}’

ll |awk ‘BEGIN{printf(“%-5s\t%s\n”),”name”,”size”;print
“============”;FS=” “;}/^-/{printf
(“%-5s\t%s\n”,$NF,$5);i+=$5}END{print
“=============”;printf(“%-5s\t%s\n”),”total”,i}’

 

 

END{
print “Over!”
}

awk NR NF

NR (number of row)表示行

NF (number of 田野同志) 表示列(暗中认可值为尾声一列)

先来看二个实例:

收获剩余内部存款和储蓄器空间大小

[root@rhel6 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          3828        791       3037          0        110        494
-/+ buffers/cache:        186       3642
Swap:         5999          0       5999
[root@rhel6 ~]# free -m | awk 'NR==3 {print $NF}'
3642

NF-5 == -六也正是尾数第六列

[root@rhel6 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          3828        791       3037          0        111        494
-/+ buffers/cache:        186       3642
Swap:         5999          0       5999
[root@rhel6 ~]# free -m | awk 'NR==2 {print $(NF-5)}'
3828

[root@localhost html]# chmod u+x awk.awk
[root@localhost html]# ./awk.awk awk_scores.txt

awk -F

格式:-F'[:#/@¥$%]’   能够定义七个分隔符,
支持正则表明式     -F ‘[      :]+’ 
使用空格和:分割,+表示能够有连日的空格或:

用法:awk -F”[@/t]” ‘{print $1,$2,$3}’
<test

    
以@,Tab键分割test文件的每壹行,并出口第3、二、三列。

 

案例: 获取各样分区的Use空间

[root@rhel6 script]# df -Ph
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/VG01-lv_root  3.8G  510M  3.1G  14% /
tmpfs                     1.9G     0  1.9G   0% /dev/shm
/dev/sda1                 477M   88M  364M  20% /boot
/dev/mapper/VG01-lv_home  1.9G  3.7M  1.8G   1% /home
/dev/mapper/VG01-lv_opt   1.9G  139M  1.7G   8% /opt
/dev/mapper/VG01-lv_tmp   3.8G  7.9M  3.6G   1% /tmp
/dev/mapper/VG01-lv_usr   4.7G  2.0G  2.6G  44% /usr
/dev/mapper/VG01-lv_var   4.7G  509M  4.0G  12% /var
[root@rhel6 script]# df -h | awk 'NR==3 {print $(NF-1)}' | awk -F '[%]' '{print $1}'
14

过滤出mysql端口

[root@rhel6 script]# netstat -lntup | grep 3306 | awk -F "[ :]+" '{print $5}'
3306
[root@rhel6 script]# netstat -lntup | grep 3306 
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      16463/mysqld        

 

3)文件
BEGIN{
print “Scores Report”
}

awk过滤

透过 /xxx|xxx|xxx/ 来张开过滤

[root@rhel6 script]# df -hP | awk -F '%' '/usr|tmp|var/{print $1}'
tmpfs                     1.9G     0  1.9G   0
/dev/mapper/VG01-lv_tmp   3.8G   81M  3.6G   3
/dev/mapper/VG01-lv_usr   4.7G  2.0G  2.5G  44
/dev/mapper/VG01-lv_var   4.7G  573M  3.9G  13
[root@rhel6 script]# df -hP | awk -F '%' '/usr|tmp|var/{print $2}'
 /dev/shm
 /tmp
 /usr
 /var

 

{ print }

END{
print “Over!”
}

[root@localhost html]# awk -f awk.awk awk_scores.txt

5、截取
行 记录 Record
列 字段 Field
字符串 出现在行和列的交点上 分明哪一行的哪壹列

5.1 截取列
awk 内置变量:$n n为数字 $一 $二$三 表示第几列
[root@localhost html]# awk ‘{print $1,$2}’ awk_scores.txt

awk 内置变量:$NF 最终1列
[root@localhost html]# awk ‘{print $1,$NF}’ awk_scores.txt
[root@localhost html]# ifconfig eth0 | awk ‘NR==2{print $2}’|awk -F:
‘{print $2}’

5.2 截取行(行:NR)
壹)N奇骏 numbers of record FN福特Explorer当前读到的行 N奥迪Q5==一 FN纳瓦拉==壹 都以指第一行
贰)正则表明式
三)条件表明式

放置变量:$0 awk程序当前处理的行
[root@localhost html]# awk ‘NR==2{print $0}’ awk_scores.txt

示例:
[root@localhost html]# awk ‘/^N/{print}’ awk_scores.txt
Nancy 89 90 73 82
[root@localhost html]# awk ‘NR==2{print}’ awk_scores.txt
Nancy 89 90 73 82
[root@localhost html]# awk ‘FNR==2{print}’ awk_scores.txt
Nancy 89 90 73 82
[root@localhost html]# awk ‘$3>=90{print}’ awk_scores.txt
John 85 92 79 87
Nancy 89 90 73 82

伍.三 截取字符串 哪壹行的第几列找到字符串(列:$n)

美高梅手机版4858 ,以下例子是截取第一行第4列的数量
[root@localhost html]# df -h |awk ‘NR==2{print $5}’
49%

陆、格式化输出
print
输出截取的数据,假使出口多列,列之间用“,”隔断–>输出后,变为空格
更动输出后的列值分割符号:

[root@localhost html]# awk ‘{print $3″:”$4″:”$1}’ awk_scores.txt
//冒号需求引起来
92:79:John
90:73:Nancy
88:92:Tom
65:83:Kity
89:80:Han
76:85:Kon

7、BEGIN 

BEGIN
当中的代码在推行动作此前实施,程序运维后,个中的代码只进行一回。设置定义变量。
变量名 对应单词 意义

列:
FS      田野先生 separator
字段分隔符(awk处理的源文本的字段分隔符,暗许空格或tab)
OFS   output 田野同志 separator
输出的分隔符(默许空格)

行:
RS      record separator
记录分隔符(暗中同意换行符\n)
ORS   output record separator
输出记录换行符

awk ‘BEGIN{FS=”:”}{print $1}’ /etc/passwd
//在读取源文件时,让awk认为列的相间符为“:”
awk ‘BEGIN{FS=”:”}{print $1,$二,$三}’
/etc/passwd //输出多少个列
awk ‘BEGIN{FS=”:”;OFS=”-“}{print $壹,$2,$三}’
/etc/passwd //输出时,内定输出列的相间符为“-”
awk -F: ‘{print $1″-“$2”-“$3}’
/etc/passwd(等同)

[root@localhost html]# cat awk_scores.txt
John 85 92 79 87
Nancy 89 90 73 82

Tom 81 88 92 81
Kity 79 65 83 90
Han 92 89 80 83
Kon 88 76 85 97

打字与印刷第一行:
[root@localhost html]# awk ‘BEGIN{RS=””}NR==1{print}’ awk_scores.txt
//通过“HavalS=”””定义行的相间符为空行

源文件:
[root@localhost html]# cat awk_contacts.txt
danny male 
china beijing
(8103)82456789

jeck male
Japan Tokyo
(8103)82456789

xi female
America Washington
(8103)82456789

danny male china beijing (8103)82456789
jeck male Japan Tokyo (8103)82456789
xi female America Washington (8103)82456789

要求输出时,每一种用户占1行,仅输出用户名、性别、联系电话

[root@localhost html]# awk ‘BEGIN{RS=””;FS=”\n”}{print $1,$3}’
awk_contacts.txt
danny male (8103)82456789
jeck male (8103)82456789
xi female (8103)82456789
//解析:通过MuranoS=””控制行的相间符为空行,再经过FS=”\n”控制字段的相间符为换行符(回车),然后打字与印刷第二列和第贰列

例:vim c.txt
1
2
3
4
5

算算出第二行和第2行的和
[root@server ~]# awk ‘BEGIN{RS=””;FS=”\n”}{print $1+$3}’ c.txt
4

//解析:通过奇骏S=””控制行的相间符为空行,通过奔驰G级S之后上述例子只可以分出1行(全体数字变成一行了),再经过FS=”\n”控制字段的相间符为换行符(回车),然后打字与印刷第三列和第一列的和

八、回头看awk的做事历程
一)awk首推读取文件的率先行,将该行赋值给$0,暗许行的相间符是回车\n
贰)通过空格(制表符)将行分割成多少个字段(列),并将列值赋值给$n,$一 $二$叁
3)
awk如何直到列分隔符?运维程序之处,有1个松开变量FS来代表字段分隔符,程序起先化FS被定义为空格、制表符
四)print 打印(执行处理动作),OFS私下认可为空格
5)读取下壹行

 

玖、高级玩法
数学生运动算
正如运算
逻辑运算
变量
数组
流程控制 if for while (类C)

玖.一 数学生运动算

  •  –  *  /  %   ^  **  
    注意:^号和**号都以指数运算
    [root@localhost html]# awk ‘BEGIN{print 1+1}’
    2
    [root@localhost html]# awk ‘BEGIN{print 1-1}’
    0
    [root@localhost html]# awk ‘BEGIN{print 10*2}’
    20
    [root@localhost html]# awk ‘BEGIN{print 10/2}’
    5
    [root@localhost html]# awk ‘BEGIN{print 10%2}’
    0
    [root@localhost html]# awk ‘BEGIN{print 10**2}’
    100
    [root@localhost html]# awk ‘BEGIN{print 10**3}’
    1000
    [root@localhost html]# awk ‘BEGIN{print 10^3}’
    1000
    [root@localhost html]# awk ‘BEGIN{print 2^10}’

 

[root@localhost html]# awk ‘{print $1,$2+$3+$4+$5}’ awk_scores.txt
John 343
Nancy 334
Tom 342
Kity 317
Han 344
Kon 346

九.2 相比运算
>  <  >=  <=  ==  !=  ~  !~
awk ‘$2!=89{print}’ awk_scores.txt
awk ‘/$1~^T/{print}’ awk_scores.txt
awk ‘$1~/^T/{print}’ awk_scores.txt
awk ‘$1~/^Han/{print}’ awk_scores.txt

awk ‘$2!=92{print}’ awk_scores.txt
awk ‘$2!~92{print}’ awk_scores.txt

注意:~号表示卓殊正则表明式,!~表示不协作。如上最后1例是意味
“截取第三列全部不为九二的数量。”

九.三 逻辑运算
与 &&
或 ||
非 !

[root@localhost html]# awk ‘$2>80 && $3>80 && $4>80 &&
$5>80{print}’ awk_scores.txt

9.4 变量
awk 命超形式 shell key=value 不允许数字先河
awk中变量假若未有没提前赋值,变量的初步值–>变量的项目(字符串和数值)
字符串 –>初始值“空”
数值 –>初始值“0”

假使定义变量即引用变量:
[root@localhost html]# awk ‘BEGIN{n=1;print n}’
1

[root@localhost html]# awk ‘BEGIN{var=”abc”;print var}’
abc

计量内部存款和储蓄器使用率:
[root@localhost html]# awk ‘NR==1{t=$2}NR==2{f=$2;print
(t-f)/t*100}’ /proc/meminfo | awk -F. ‘{print $1}’

 

9.5 数组
shell中
array=(一 二 三 4 5) 数组的下标从0 引用echo ${array[*]}

awk中
array[n]=value 数组的下标从一始发

awk引用数组:
array[n] n代表下标

概念数组array,赋值,引用:

[root@localhost html]# awk
‘BEGIN{array[1]=10;array[2]=11;array[3]=12;print
array[1],array[2],array[3]}’
10 11 12
[root@localhost html]# vim array.awk
[root@localhost html]# awk -f array.awk
A B C
[root@localhost html]# cat array.awk
BEGIN{
array[1]=”A”
array[2]=”B”
array[3]=”C”

print array[1],array[2],array[3]
}
[root@localhost html]# awk -f array.awk
A B C

9.6 if语句
if (expression)
{
statement
}
else
{
statement
}

 

示例:

#!/bin/awk -f --->#!/usr/bin/awk -f
{
if ($2>=80)
{ print $1,"Pass"}
else
{ print $1,"Nopass"}
}

 

之判断为确真实景况况

#!/bin/awk -f
{
if ($2>=80)
{ print $1,"Pass"}
}

 

[root@localhost html]# awk ‘{
> if($2>=80)
> {print $1,”Pass”}
> }’ awk_scores.txt
John Pass
Nancy Pass
Tom Pass
Han Pass
Kon Pass

 

9.7 for

for循环为数组赋值

#!/bin/awk -f
BEGIN{
for(i=1;i<5;i++)
{
array[i]=i
print array[i]
}
}

 

拉长运算

#!/bin/awk -f
{
sum=0
for(i=1;i<5;i++)
{
sum+=$i
}
print sum
}

 

 

while

格式:

while(表达式)

{语句}

例:

#!/bin/awk -f
BEGIN{
a=10;
b=0;
while (i<=10)
{
b=a+b;
i++;
}
print b;
}

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有