Shell脚本之awk的用法

Shell脚本之awk的用法

所有参数参数

基本格式:awk 'pattern { action }' file

-f program:使用程序文件program中的AWK脚本来处理输入数据。

-F fs:设置输入字段分隔符为fs。默认情况下,AWK使用空格或制表符作为字段分隔符。

-v var=val:在处理输入数据之前,将变量var设置为val。

-f program:使用程序文件program中的AWK脚本来处理输入数据。

-F fs:设置输入字段分隔符为fs。默认情况下,AWK使用空格或制表符作为字段分隔符。

-v var=val:在处理输入数据之前,将变量var设置为val。

-m:对输入数据进行多字符字段处理。

-W compat:使AWK与旧版本的AWK兼容。

-W copyright:输出AWK的版权信息。

-W help:输出AWK的帮助信息。

-W lint:对AWK脚本进行语法检查。

-W lint-old:对旧版本的AWK脚本进行语法检查。

-W posix:使AWK符合POSIX标准。

-W version:输出AWK的版本信息。

常见用法

1)打印文件的所有行:如果你不使用任何模式,awk 会默认打印文件的每一行。例如,awk '{print}' file 会打印 file 的所有行。

2)打印文件中的特定列:如果你希望打印文件中的特定列,你可以使用 符号加上列的数字索引。例如,awk '{print 1}' file 会打印 file 的第一列。

3)使用自定义的分隔符:默认情况下,awk 使用空格或制表符作为字段分隔符。如果你希望使用自定义的分隔符,你可以使用 -F 参数。例如,awk -F, '{print $1}' file 会以逗号为分隔符,打印 file 的第一列。

4)使用模式匹配:你可以使用 awk 进行模式匹配。例如,awk '/pattern/ {print}' file 会打印 file 中包含 pattern 的所有行。

5)带有逻辑运算符的模式匹配:你可以使用逻辑运算符(如 &&,||)来组合多个模式。例如,awk '/pattern1/ && /pattern2/ {print}' file 会打印 file 中同时包含 pattern1 和 pattern2 的所有行。

6)计算和打印行数:你可以使用 NR(表示当前行号)和 FNR(表示当前文件中的行号)来计算和打印行数。例如,awk '{print NR, $0}' file 会打印 file 的每一行,并在每行前打印行号。

7)使用条件语句:你可以在 awk 中使用条件语句。例如,awk '{if (1 \> 10) print 1}' file 会打印 file 中第一列大于10的所有行。

8)自定义输出:你可以使用 printf 函数进行自定义输出。例如,awk '{printf "Column 1: %s, Column 2: %s\n", 1, 2}' file 会以特定的格式打印 file 的前两列。

9)使用内置变量:除了 1, 2, NR, FNR 等内置变量外,awk 还提供了其他一些内置变量,如 NF(表示当前行的字段数)。例如,awk '{print NF}' file 会打印 file 每一行的字段数。

10)使用用户定义的变量:你可以在 awk 中定义自己的变量。例如,awk '{total += $1} END {print total}' file 会计算 file 第一列的总和,并在文件结束时打印出来。

11)调用系统命令:你可以在 awk 中调用系统命令。例如,awk '{print | "sort"}' file 会将每一行打印到标准输出,并通过管道将结果传递给 sort 命令。

相关推荐
别动我齐刘海2 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
玖石书3 小时前
Ubuntu 24.04 UFW 全命令攻略:从入门到端口开放实战
linux·运维·ubuntu
xiaoqiMikko4 小时前
Linux 实战(七):useradd、sudoers、umask、SGID、软链 —— 三台真机实测
linux·centos
拂拉氏6 小时前
【知识讲解】 Linux之动静态库的了解
linux·运维·服务器·动静态库
Fcy6486 小时前
Linux下 五种IO模型的认识与⾮阻塞IO的实现
linux·服务器·io
Mikko76 小时前
Linux 重启后日志没了?进程被 OOM 杀了去哪看?logrotate 之后日志还往旧文件写?三台真机实测日志与性能排查
linux·运维·centos
书生执笔画浮沉6 小时前
分享一个开源小工具CAdapt
linux·c·gnu·glibc·kernel·升级·灵感
mounter6257 小时前
Linux 内核热升级(Live Update)技术详解:PCI、VFIO 与 IOMMU 子系统的演进与实战解析引言
linux·linux kernel·kernel·iommu·vfio
砚凝霜7 小时前
【软考信息安全】第十九章 Unix/Linux安全分析与防护
linux·安全·unix
天国梦8 小时前
国密门禁品牌怎么选?2026年最新3个避坑要点
运维·服务器·数据库·python