1. 多个分隔符

awk默认以空格或Tab作为字段分隔符,但是有时候我们需要使用多个分隔符来切割文本。可以使用-F参数指定多个分隔符,例如:

awk -F '[,;]' '{print $1,$2,$3}' file.txt

上面的命令将文本文件file.txt以逗号或分号作为分隔符,输出第1、2、3列。

  1. 自定义输出分隔符

awk默认使用空格作为输出分隔符,但可以使用OFS变量自定义输出分隔符。例如:

awk 'BEGIN{OFS=","} {print $1,$2,$3}' file.txt

上面的命令将文本文件file.txt以逗号作为输出分隔符,输出第1、2、3列。

  1. 内置函数

awk内置了很多函数,例如substr用于截取字符串,length用于获取字符串长度,tolower用于将字符串转换为小写等。例如:

awk '{print substr($1,1,3),length($2),tolower($3)}' file.txt

上面的命令将文本文件file.txt输出第1列前3个字符、第2列长度、第3列转换为小写后的结果。

  1. 正则表达式匹配

awk可以使用正则表达式匹配文本,例如:

awk '/pattern/{print $1,$2}' file.txt

上面的命令将文本文件file.txt匹配包含pattern的行,输出第1、2列。

  1. 处理文件

awk可以处理多个文件,例如:

awk '{print $1}' file1.txt file2.txt

上面的命令将同时处理file1.txt和file2.txt,输出每个文件的第1列。

  1. 数组

awk支持数组,可以使用数组存储数据。例如:

awk '{a[$1]+=$2} END{for(i in a){print i,a[i]}}' file.txt

上面的命令将文本文件file.txt以第1列为下标,第2列为值存储到数组a中,最后输出数组a的每个元素。

  1. 控制语句

awk支持控制语句,例如if、while、for等。可以使用控制语句处理复杂的文本数据。例如:

awk '{if($3>50){print $1,$2}}' file.txt

上面的命令将文本文件file.txt判断第3列是否大于50,输出第1、2列。

  1. 自定义函数

awk支持自定义函数,可以使用函数处理文本数据。例如:

awk 'function add(a,b){return a+b} {print add($1,$2)}' file.txt

上面的命令将文本文件file.txt定义一个函数add用于计算两个数的和,然后输出每行的和。

以上是awk高级用法的一些例子,可以根据实际情况灵活运用。

继续学习awk高级用法

原文地址: https://www.cveoy.top/t/topic/bzOw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录