千家信息网

awk命令的基本用法

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,awk的基本用法格式awk 动作 文件名/文件名/awk/动作打印当前,print 打印,$0当前行[root@zhaocheng ~]# echo "awk is very useful" |awk
千家信息网最后更新 2025年12月01日awk命令的基本用法

awk的基本用法
格式
awk 动作 文件名/文件名/awk/动作

打印当前,print 打印,$0当前行

[root@zhaocheng ~]# echo "awk is very useful" |awk '{print $0}'awk is very useful[root@zhaocheng ~]# cat filetest root:$1$dDTFylQ3$.vTZKpm7mrra9WMsxvBfW.:18241:0:99999:7bin:*:17834:0:99999:7:dadlp:*:17834:0:99999:7adasync:*:17834:0:99999:7:::ggshutdown:*:17834:0:99999:7::dahalt:*:17834:0:99999:7::fsdanginx:!!:18289::::::daafrabbitmq:!!:18297:::::dada

比如取这个文件的第一个域
-F 分隔符,":" 以冒号为分隔符
'{print $1}' 打印第每一列,这里就是以冒号为分隔符打印每列的第一个域

[root@zhaocheng ~]# cat filetest |awk -F ":" '{print $1}'rootbinlpsyncshutdownhaltnginxrabbitmq

比如以这个文件打印最后一个域,这里打印的时候还是要以什么为分隔符,有的可能是空格

[root@zhaocheng ~]# cat filetest |awk -F ':' '{print $NF}'7dad7adaggdafsdadaafdada

或者取中间的一个域,可以使用$(NF-1),处理的是-1行从后往前-1

[root@zhaocheng ~]# cat filetest |tail -1systemctl start mysqld[root@zhaocheng ~]# cat filetest |tail -1 |awk -F " " '{print $(NF-1)}'start

或者想知道处理的第几行,可以使用NR,这里也就是相当于加了一个")"

[root@zhaocheng ~]# cat filetest|tail -3 |awk -F " " '{print NR ") "  $2 }'1) 2) 3) start

比如取ifconfig的IP,这里取IP的方法比较多

[root@zhaocheng ~]# ip a |grep eth02: eth0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    inet 172.17.0.8/20 brd 172.17.15.255 scope global eth0这里是先取的打印每列的第2个域,使用tail -1倒数第一行,使用awk -F以/为分隔符取第一个域[root@zhaocheng ~]# ip a |grep eth0 |awk '{print $2}' |tail -1|awk -F "/" '{print $1}'172.17.0.8

或者直接使用grep过滤出来,使用awk以空格为分隔符,直接取第二个域,再取/号的第一个域

[root@zhaocheng ~]# ip a |grep eth0 |grep inet |awk -F " " '{print $2}' |awk -F "/" '{print $1}'172.17.0.8

也可以使用sed取它的行数,再使用awk精确匹配

[root@zhaocheng ~]# ip a |sed -n '9p'|awk -F " " '{print $2}' |awk -F "/" '{print $1}'172.17.0.8

awk的其他变量
FS:字段分隔符,默认是空格和制表符。
RS:行分隔符,用于分割每一行,默认是换行符。
OFS:输出字段的分隔符,用于打印时分隔字段,默认为空格。
ORS:输出记录的分隔符,用于打印时分隔记录,默认为换行符。
OFMT:数字输出的格式,默认为%.6g。

比如打印出这个文件中带有nginx子段的所有行

[root@zhaocheng ~]# awk -F ":" '/nginx/ {print $0}' filetest nginx:!!:18289::::::daafdadad:nginx:sdada

比如打印filetest文件第三行以前的行,以:为分隔符打印第三个域

[root@zhaocheng ~]# awk -F ":" 'NR >3 {print $3}' filetest 1783417834178341828918297sdada
分隔符 文件 空格 字段 输出 一行 冒号 动作 换行符 文件名 时分 格式 处理 精确 三个 也就是 制表符 变量 数字 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 iphone备份失败连接服务器失败 下载东西服务器繁忙 普宁管理软件开发 网络安全核心股票的比较 上海宝山区公安局网络安全 计算设备数据的软件开发 计算机网络技术应用难不难 清空一张表的数据库表 网络安全周活动策划 超能电视正在链接服务器 java dns服务器 怎么制作连接数据库 网络技术适合多体通信需求 天津网络安全监察总队 网络安全专家工作 牡丹江软件开发公司哪家好 大健康杂志哪个数据库收录 数据库中数据操纵语言的定义 软件开发环境搭建工作介绍 于我国网络安全的新常态 服务器千兆网卡网线要求 铭冠网络安全怎么解决 国防科大网络安全学科评估排名 撤销往数据库插数据 崇明区市场网络技术供应 西工大软件开发综合能力训练 自己搭建邮件服务器难吗 北京服务器市场 知乎 甘肃互联天下网络技术有限公司 黄梅最久互联网科技有限公司
0