Awk 是一个非常强大的文本处理工具,它可以对文本文件进行数据提取、过滤、转换和格式化等操作。Awk 的语法比较简单,但功能非常强大,掌握它可以大幅提高文本处理的效率。下面是 Awk 的一些常用用法,供大家参考。
Awk 命令的基本语法如下:
awk 'pattern {action}' filename
其中 pattern 是匹配文本的条件,action 是对匹配的文本进行操作的命令,filename 是待处理的文件名。如果省略 filename,则 Awk 命令会从标准输入读取数据。
Awk 命令的工作原理是逐行读取文件,然后将每一行的文本按照指定的分隔符划分成一系列的字段。在处理每一行文本的时候,Awk 会根据指定的 pattern 来进行匹配,如果匹配成功,则执行对应的 action。
以下是 Awk 命令的一些常用选项:
-F
指定分隔符-v
定义变量-f
指定 awk 脚本文件以下是 Awk 命令的一些常用模式:
/pattern/
匹配包含 pattern 的文本行$n
匹配当前行的第 n 个字段NR == n
匹配第 n 行NF > n
匹配有超过 n 个字段的行以下是 Awk 命令的一些常用操作:
print
打印指定的文本或变量printf
格式化打印指定的文本或变量getline
读取下一行的文本length
计算指定文本或变量的长度substr
提取指定文本或变量的子字符串split
将指定文本或变量按照指定的分隔符划分为数组以下是 Awk 命令的一些示例:
awk '{print}' filename
awk '{print $1,$3}' filename
awk '{print $0}' filename | sort -k1
awk -F, '{print $1,$3}' filename
awk '/pattern/ {print $0}' filename
awk '{sum += $1} END {print sum}' filename
awk '{sum[$1] += $2; count[$1]++} END {for (i in sum) print i, sum[i]/count[i]}' filename
awk '{printf "%-10s %-10s %10s\n", $1, $2, $3}' filename
awk '{lines += NR; bytes += length} END {print lines, bytes}' filename1 filename2
awk '/pattern/ {if ($1 > 10) print "large"; else print "small"}' filename
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。