gun linux 关闭防火墙,Linux基础知识之GUN awk

6.常用的action:

(1)Expressions:表达式

(2)Control statements:if,while等:

(3)Compound statements:组合语句:

(4)input statements:输入语句;

(5)output statements:输出语句;

7.控制语句:

(1)if-else:

if(comdition) {statements}

awk -F: '{if($3>=500) print $1,$3}' /etc/passwd

if(comdition) {statements} else {statements}

awk -F: '{if($3>=500) {printf"Common user:%s\n",$1} else {printf"root or Sysuser:%s\n",$1}}' /etc/passwd

(2)while

while(comdition) {statements}

条件“真”,进入循环,条件“假”,退出循环,循环体可能一次也不会执行;

使用场景,队一行内的多个字段逐一类似处理时使用,对数组中的各元素逐一处理时使用;

(3)do-while循环;

do {statements} while(comdition)

意义:至少循环一次循环体

(4)for循环:

for(expr1;expr2;expr3) {statements}

特殊用法:能够遍历数组中的元素

awk '/^[[:space:]]*linux64/{for(i=1;i<=NF;i++){print $i,length($i)}}' /etc/grub2.cfg

(5)switch-case语句;

语法:switch(expression) {case VALUE1 or /REGXP/:statement;case VALUE2 or             /REGXP/:statement;…..;default:statement}

(6)break和continue:

break [n]:结束当前循环

continue:

(7)next:

提前结束对本行的处理,直接进入下一行;

awk -F: '{if($3%2!=0) next;print $1,$3}' /etc/passwd

(8)array

关联数组:array[index-expression]

index-expression:

(1)可使用任意字符串;字符串要使用双引号;

(2)如果某数组元素事先不存在,在引用时,awk会自动创建此元素,并将其值初始化为"空串"。

若要判断数组中是否存在元素,要使用"index in array" 格式进行;

变量赋值:weekdays[mon]="Monday"

若要遍历数组中的每个元素,要使用for循环;

for(var in array){for-body}

awk ‘BEGIN{weekday=["mon"]="monday";weekday["tue"]="Tuesdays";for(i in weekday) {print}}'

awk '{ip[$i]++}END{for(i in ip) {print i,ip[i]}}' /varl/log/httpd/access_log

注意:var会遍历array的每个索引;

-tan | awk '/^tcp\>/{state[$NF]++}END{for(i in state){print i,state[i]}}'

delete array[index]

delete array

exit

8.函数:

(1)内置函数:

数值处理:

rand():返回0和1之间的一个随机数

字符串处理:

length([s]):返回指定字符串的长度

sub(r,s,[t]):以r表示的模式来查找t所表示的字符串中的匹配的内容,并将其第一次出现替换为s所表示的内容;

gsub(r,s,[t]):以r表示的模式来查找t所表示的字符串中的匹配的内容,并将其所有出现替换为s所表示的内容;

split(s,a,[r]):以r为分割符切割字符s,并将切割后的结果保存至a所表示的数组中;

(2)自定义函数:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值