awk命令语法及案例

awk是一种强大的文本分析工具,由Aho, Weinberger, 和 Kernighan创建。它处理文本文件,通过模式匹配对输入行进行操作。awk脚本包含BEGIN和END块,以及处理每一行的代码。默认情况下,匹配的行会被打印。awk使用空格或制表符作为字段分隔符,$1, $2等表示字段,$0表示整条记录。表达式和变量也是awk的重要组成部分,变量无需预定义,自动初始化为空字符串或0。" 117148477,10536839,C语言时间操作:显示、转换与计算,"['C语言', '时间处理', '编程基础']
摘要由CSDN通过智能技术生成

awk命令语法及案例

awk命令的用法

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。
之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。

语法

awk [选项参数] 'script' var=value file(s)
或
awk [选项参数] -f scriptfile var=value file(s)

awk脚本

关于 awk 脚本,我们需要注意两个关键词 BEGIN 和 END。

BEGIN{ 这里面放的是执行前的语句 }
END {这里面放的是处理完所有的行后要执行的语句 }
{这里面放的是处理每一行时要执行的语句}

[root@yzy ~]#  awk 'BEGIN{print "姓名\t\t年龄\nzs\t\t20\nls\t19\nww\t\t25\nmz\t\t18"}'
姓名            年龄
zs              20
ls              19
ww              25
mz              18

打印年龄
[root@yzy ~]# awk '{print $2}' ww
年龄
20
19
25
18

模式匹配
当awk读入一行时,它试图匹配脚本中的每个模式匹配规则。只有与一个特定的模式相匹配的输入行才能成为操作对象。如果没有指定操作,与模式相匹配的输入行将被打印出来(执行打印语句是一个默认操作)。

[root@yzy ~]# vim awkscript
[root@yzy ~]# cat awkscript 
/[0-9]+/{print "这是一个数字"}
/[a-zA-Z]+/{print "这是一个字符串"}
/^$/{print "这是一个空行"}
[root@yzy ~]# awk -f awkscript 
2
这是一个数字
w
这是一个字符串
 
这是一个空行
ctrl+d 退出

记录和字段
awk假设它的输入是有结构的,而不只是一串无规则的字符。在最简单的情况下,它将每个输入行作为一条记录&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值