awk命令(AWK程序设计语言)

awk命令(有自己的语言:AWK程序设计语言)

awk是行处理器:相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息。

awk处理过程:依次对每一行进行处理,然后输出。

通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。

使用模式: awk '{pattern + action}' {filenames}

pattern:表示AWK在数据中查找的内容

action:找到匹配内容时所执行的一系列命令

filenames:为输入文件

例:awk '{print $0}' /etc/passwd 执行时,它依次对 /etc/passwd 中的每一行执行 print 命令,完成之后,讲所有输出都发送到stdout。

awk的参数

-F ":" ,-F用于指定分隔符,可以指定多个分隔符,这些分隔符将一行文本分隔成多个独立文本信息,然后便可以打印出对应的信息。

NR:对行进行选择, awk '{if(NR>=20 && NR<=30) print $1}' test.txt 表示输出text.txt内的第20行到第30行的内容。

BEGIN和END模块

通常,对于每个输入行, awk 都会执行每个脚本代码块一次。然而,在许多编程情况中,可能需要在 awk 开始处理输入文件中的文本之前执行初始化代码。对于这种情况, awk 允许您定义一个 BEGIN 块。因为 awk 在开始处理输入文件之前会执行 BEGIN 块,因此它是初始化 FS(字段分隔符)变量、打印页眉或初始化其它在程序中以后会引用的全局变量的极佳位置。awk 还提供了另一个特殊块,叫作 END 块。 awk 在处理了输入文件中的所有行之后执行这个块。通常, END 块用于执行最终计算或打印应该出现在输出流结尾的摘要信息。

例:ll |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ",size}'

统计文件夹下文件占用的字节数,在BEGIN阶段初始化size,在END阶段将统计的size信息输出。

awk内置变量

在这里插入图片描述

awk正则

在这里插入图片描述

awk常用字符串函数

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值