2024年4月29日发(作者:)

linux命令awk用法

awk是一种文本处理工具,用于从文件或标准输入中提取和处理数据。它基于模式匹配和

动作执行的原则。

一、awk命令的基本用法:

1. 输出整行:

awk '{print}'

2. 输出指定列:

awk '{print $1, $3}'

3. 按特定分隔符输出列:

awk -F':' '{print $1, $3}'

4. 使用条件筛选:

awk '$3 > 10 {print}'

5. 使用条件筛选并输出指定列:

awk '$3 > 10 {print $1, $3}'

6. 使用自定义的动作进行处理:

awk '{sum += $3} END {print "总和:" sum}'

7. 使用if-else条件:

awk '{if ($3 > 10) print "大于10"; else print "小于等于10"}'

8. 使用内置变量:

awk '{print NR, NF, $0}'

NR:当前记录号(行号);NF:当前记录的字段数;$0:整行内容

二、awk命令的高级用法:

awk 的高级用法包括更复杂的模式匹配、自定义函数、数组和循环等。以下是一些常见的

高级用法模式:

1. 使用模式匹配:

awk '/pattern/ {print}'

输出文件中包含特定模式的所有行。

2. 自定义函数:

awk 'function myfunc(arg) {return arg * 2} {print myfunc($3)}'

定义一个函数

myfunc

,并在每行的第三个字段上应用该函数进行处理。

3. 使用数组:

awk '{arr[$1] += $2} END {for (key in arr) print key, arr[key]}'

对文件中的第一个字段进行计数,并输出每个字段及其对应的计数结果。

4. 循环结构:

awk '{for (i=1; i<=NF; i++) sum += $i} END {print "总和:" sum}'

对当前行的每个字段进行求和,并在文件结束时输出总和。

5. 使用正则表达式:

awk '/[0-9]+/ {print}'

输出包含一个或多个数字的行。

6. 多个输入文件:

awk '{print FILENAME, $0}'

这里的

FILENAME

变量表示当前处理的文件名,通过结合

$0

(整行内容)一起输

出。

以上是 awk的用法示例,希望对你有所帮助。