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

*小心: awk的表明式须求选取单引号”

awk

一、awk命令

awk是一种编制程序语言,用于在linux/unix下对文件和数码举办拍卖(gawk –
pattern scanning and processing
language)。centos七中的awk是gawk的链接。它扶助用户自定义函数和动态正则表明式等先进功效,是linux/unix下的3个强有力编制程序工具。后面包车型大巴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 赋值1个用户定义变量,将表面变量传递给awk
-f scripfile 从剧本文件中读取awk命令

  -F “[, ]”  多分隔符

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

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

贰、对文件竖列的操作

awk命令能够有利于的经过点名分隔暗记将文件分成特定的列,然后在针对分出去的竖列举办操作

一、显示test.txt文书档案的率先列前五行。

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

一声令下解释:-F ‘:’
就是说那几个文件以:作为分隔符,大家做试验的是passwd文件,它自己就被:分割成了7段,'{}’中就是操作的叙述,命令中的print
$一 就是展现第一列。

澳门金沙国际 1

2、彰显test.txt文件所有竖列的剧情

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

注意与上一条命令的区分,$壹代表第叁列,$0代表全体列。
澳门金沙国际 2

作用上实际和cat一样。

3、awk也可以
awk命令在未有点名-F
分割符号或分割字符串时,默许以空格或然空白段作为分隔符

咱俩先创建3个测试文书档案,以空格作为分隔符
澳门金沙国际 3

后大家输入下列命令

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

澳门金沙国际 4

能够观察awk自动把空格作为分段暗号,不管是不怎么个空格。

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

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

澳门金沙国际 5

  $壹 第一列  $NF最终1列

先后模型:

打印: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读入文本之后的操作

二、职业流程
读取file、标准输入、管道给的数目,从第叁行初始读取,逐行读取,看是否相称我们想要的数额(pattern方式相称),对数据开始展览处理,直到读完全部的行,退出awk程序(试行的每一条awk的一声令下)

grep3大shell文本处理工科具之awk的采纳。3、awk相称功用举例

awk 搜索操作时与sed命令同样,awk默许扶助正则,不供给像grep -E , sed -r
同样须求特地选项。
一、找寻含首要字root的行

awk ‘/root/’ test.txt

澳门金沙国际 6

二、寻找第二竖列中带有oo字符的行。

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

澳门金沙国际 7

小心这些波浪号~正是同盟的乐趣。

三、寻找root和test任意相配在那之中1个所在的行的首先列和第贰列

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

澳门金沙国际 8

澳门金沙国际 9

四、寻找分割后第2段==0的行,约等于uid是零的行。

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

澳门金沙国际 10

那1列也得以打开到此外数学表明式

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

澳门金沙国际 11

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

澳门金沙国际 12

伍、搜索分割后最终不是/sbin/nologin的行

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

澳门金沙国际 13

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

陆、找出第三列大于第六列或然第七列==/sbin/nologin的行

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

澳门金沙国际 14

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

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

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

澳门金沙国际 15

      awk  ‘{print $一}’文件<==$一首先列,$一遍之列…$NF最终壹列,$(NF-一)

方式相称:

当匹配到//里的正则表明式后才实行后边命令
awk ‘/aaa/{print ++i,”hhh”}’ a.txt
打字与印刷第3个和首个字段:$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]

四、awk内置变量功用举例

awk命令自带了壹些变量:
OFS:系统一分配隔符
N汉兰达:总行数变量
NF:分割后最大段数数值

一、列出第一列大于一千数字或许第九段包括/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

澳门金沙国际 16

澳门金沙国际 17
二、展现分段的末段1行

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

澳门金沙国际 18
$NF 表示最后 NF表示段数,是三个数字

三、显示文件,并在每一行前增加行号==grep -n

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

澳门金沙国际 19
澳门金沙国际 20

4、展现前10行,同时复习sed写法。

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

澳门金沙国际 21

澳门金沙国际 22
同时复习sed写法

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

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

澳门金沙国际 23

注意与head -n3 test.txt| awk -F ‘:’ ‘{OFS=”:”} $1==”root”‘
test.txt的区别
澳门金沙国际 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数学生运动算举例

一、总括第叁段的值的和

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

澳门金沙国际 25

    NRubicon代表行号,&& (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 输入定义字段分隔符,默认为1个空格田野(field) seprator
OFS 输出的字段分隔符,默感到二个空格
awk ‘BEGIN{FS=”:”;OFS=”T”}{print $1,$2}’ a.txt
BMWX五S 输入记录分隔符,默感觉3个换行符
OOdysseyS 输出的记录分隔符,默以为1个换行符
awk ‘BEGIN{RS=”\t”;ORS=” “}{print $1,$2}’ a.txt
NR 行数
awk ‘{print NR}’ a.txt
FN福特Explorer 行数,多文本操作时会重新排序
awk ‘{print FNR}’ a.txt ming
NF 字段的个数,$NF表示最后1个字段
awk ‘BEGIN{FS=”:”}{print NF}’ a.txt
FILENAME 文件名
awk ‘{print FILENAME}’ a.txt

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

关系操作符和布尔操作符

4)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
! 逻辑非Logical NOT
先进行关系操作符再执行布尔操作符

处理公事格局:
[file]:
awk要拍卖的文本行(源数据),可以是别的命令的出口、管道过来的数码

格式化打印:

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

4、指定awk的方式
一)命令行方式:
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 终止当前的大循环,并从循环的顶部开首2个新的巡回
潜移默化主输入循环
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 == -六也正是最后多少个第4列

[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文件的每1行,并出口第贰、二、三列。

 

案例: 获取各个分区的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 最终一列
[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)
1)N奥迪Q5 numbers of record FN卡宴当前读到的行 N翼虎==一 FN兰德酷路泽==一 都是指第3行
二)正则表明式
叁)条件表明式

放置变量:$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

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

以下例子是截取第二行第伍列的数目
[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      田野(field) 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 $一,$二,$3}’
/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
//通过“哈弗S=”””定义行的相间符为空行

源文件:
[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

供给输出时,各类用户占一行,仅输出用户名、性别、联系电话

[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
//解析:通过讴歌MDXS=””调节行的相间符为空行,再经过FS=”\n”调整字段的相间符为换行符(回车),然后打字与印刷第3列和第2列

例:vim c.txt
1
2
3
4
5

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

//解析:通过LX570S=””调整行的相间符为空行,通过奇骏S之后上述例子只可以分出1行(全体数字产生一行了),再通过FS=”\n”调节字段的相间符为换行符(回车),然后打字与印刷第叁列和第一列的和

八、回头看awk的做事历程
一)awk首推读取文件的第三行,将该行赋值给$0,暗许行的相间符是回车\n
2)通过空格(制表符)将行分割成四个字段(列),并将列值赋值给$n,$1 $二$3
三)
awk怎么着直到列分隔符?运转程序之处,有一个置于变量FS来代表字段分隔符,程序起初化FS被定义为空格、制表符
四)print 打字与印刷(实践拍卖动作),OFS默感觉空格
伍)读取下壹行

 

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

9.一 数学生运动算

  •  –  *  /  %   ^  **  
    注意:^号和**号都以指数运算
    [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

9.贰 相比较运算
>  <  >=  <=  ==  !=  ~  !~
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

注意:~号表示非常正则表达式,!~表示不匹配。如上最终一例是代表
“截取第3列全部不为九二的数量。”

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

[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=(1 2 三 四 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;
}

 

相关文章