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的用法示例,希望对你有所帮助。


发布评论