Shell脚本之awk

目录

一、AWK工作原理

二、AWK常见内置变量

三、AWK基础用法

 四、awk查找模式

 五、awk条件判断

 六、awk里的for

 七、awk数组

八、awk 案例


一、AWK工作原理

  • 逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。

  • awk倾向于将一行分成多个"字段"然后再进行处理。

  • awk信息的读入也是逐行读取的,执行结果可以通过print的功能将字段数据打印显示。

  • 使用awk命令的过程中,可以使用逻辑操作符"&&"表示"与"、"|"表示"或"、"!"表示"非",还可以进行简单的数学运算,如+、-、*、/、%、^分别表示加、减、乘、除、取余和乘方。

二、AWK常见内置变量

FS 指定每行文本的字段分隔符,缺省为空格或制表符(tab)。
OFS 输出时的分隔符
NF 当前处理的行的字段个数
NR 当前处理的行的行号(序数)
$0 当前处理的行的整行内容
$n 当前处理行的第n个字段(第n列)
FILENAME 被处理的文件名
RS 行分隔符。

三、AWK基础用法

基本输出

Shell脚本之awk_第1张图片

 查看文本奇数行内容

Shell脚本之awk_第2张图片

 按要求查找内容

BEGIN

Shell脚本之awk_第3张图片

 四、awk查找模式

awk '模式{处理动作}'

模式:

比较操作符:==, !=, >, >=, <, <=

逻辑操作符:与:&&,并且关系;或:||,或者关系;非:!,取反

选项:-F  指定分隔符;-v  自定义变量;-f  脚本

Shell脚本之awk_第4张图片

Shell脚本之awk_第5张图片

 五、awk条件判断

if语句:awk的if语句也分为单分支、双分支和多分支
单分支为if(){}
双分支为if(){}else{}
多分支为if(){}else if(){}else{}

Shell脚本之awk_第6张图片

 六、awk里的for

awk里的for是循环

for(expr1;expr2;expr3) {statement;…}

【expr1是初始条件,expr2是跳出循环条件,expr3是处理动作】

 七、awk数组

遍历数组

八、awk 案例

要求:删除 用户文件下uid大于100的普通用户

Shell脚本之awk_第7张图片

【脚本内容】

Shell脚本之awk_第8张图片

 【查看原本有用户id大于1000】

【执行脚本】

Shell脚本之awk_第9张图片【再看用户信息里大于1000的用户全部被删除了】 

你可能感兴趣的:(服务器,linux,运维)