Linux awk命令使用技巧
以下是一些Linux awk命令的使用技巧:
- 打印某一列:
- 使用
awk '{print $n}' file
,其中$n
表示第n列。例如,awk '{print $1}' file
将打印文件中的第一列。 - 对于csv文件,可以使用
-F
选项指定分隔符,如awk -F',' '{print $1,$2}' file
将打印csv文件中的第1和第2列。
- 使用
- 统计行数:
- 使用
awk '{print NR}' file
,其中NR是内置变量,表示当前记录号,即行号。
- 使用
- 统计字段数:
- 使用
awk '{print NF}' file
,其中NF是内置变量,表示当前记录的字段数。
- 使用
- 按条件筛选行:
- 使用正则表达式或布尔表达式作为模式匹配条件,如
awk '/pattern/ {print}' file
将打印包含指定模式的行。
- 使用正则表达式或布尔表达式作为模式匹配条件,如
- 计算某列的总和:
- 使用累加器模式,如
awk '{sum += $1} END {print sum}' file
将计算第一列的总和并打印。
- 使用累加器模式,如
- 格式化输出:
- 使用
printf
函数,如awk '{printf "%-10s %-10s ", $1, $2}' file
将以指定格式打印输出。
- 使用
- 处理多个文件:
- 使用
awk '{action}' file1 file2 ...
可以处理多个文件,action
将对每个文件的每一行执行。
- 使用
- 自定义函数:
- 在awk脚本中定义函数,如
function name(args) {body}
,然后在脚本中调用该函数。
- 在awk脚本中定义函数,如
- 使用数组:
- 定义数组并赋值,如
awk 'BEGIN{arr[1]="one"; arr[2]="two"} {print arr[1], arr[2]}'
。
- 定义数组并赋值,如
- 结合其他命令:
- awk可以与其他命令行工具(如grep、sed)结合使用,形成强大的文本处理管道。
这些技巧可以帮助你更高效地使用awk命令进行文本处理和数据分析。