千家信息网

Linux系统的awk命令怎么用

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍"Linux系统的awk命令怎么用",在日常操作中,相信很多人在Linux系统的awk命令怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Linux
千家信息网最后更新 2025年02月02日Linux系统的awk命令怎么用

这篇文章主要介绍"Linux系统的awk命令怎么用",在日常操作中,相信很多人在Linux系统的awk命令怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Linux系统的awk命令怎么用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、awk命令的语法及概述

awk 选项 ‘模式或条件 { 编辑指令 }’ 文件1 文件2 …

//过滤并输出文件符合条件的内容

awk -f 脚本文件 文件1 文件2 …

//从脚本中调用编辑指令,过滤并输出内容

*awk执行结果可以通过print的功能将字段数据打印显示。在使用awk命令的过程中,可以使用逻辑操作符"&&"和"||";

也可以进行简单的数学运算,如+ 、-、、/、%、^分别表示加、减、乘、除、取余、乘方。**

awk从输入文件或者标准输入中读入信息,与sed一样,信息的读入也是逐行读取的。不同的是,awk命令将文本文件中的一行视为一个记录,而将一行中的某一部分(列)作为记录的一个字段。为了操作这些不同的字段(列),awk借用shell中类似于位置变量的方法,用$1、$2…$9顺序的表示不同列,$0表示整行。不同字段与不同字段可以通过指定的方式进行分隔,awk默认的分隔符是空格。awk命令允许使用"-F分隔符"的形式来指定分隔符。

二、awk命令用法示例

1)按行输出文本

1、输出所有内容

[linuxmi@linux:~/linuxmi迷]$ awk ‘{print}’ linuxmi.py[linuxmi@linux:~/linuxmi迷]$ awk ‘{print $0}’ linuxmi.py

等同于"linuxmi.py"

2、输出第1~3行的内容

[linuxmi@linux:~/linuxmi迷]$ awk ‘NR==1,NR==3{print}’ linuxmi.py

包括空行

3、出第3行、第5行的内容

[linuxmi@linux:~/linuxmi迷]$ awk ‘NR==3 || NR==5{print}’ linuxmi.py

4、输出所有奇数行的内容

[linuxmi@linux:~/linuxmi迷]$ awk ‘(NR%2)==1 {print}’ linuxmi.py

5、输出所有偶数行的内容

[linuxmi@linux:~/linuxmi迷]$ awk ‘(NR%2)==0 {print}’ linuxmi.py

6、输出以"root"开头的行

[linuxmi@linux:~/linuxmi迷]$ awk ‘/^root/{print}’ /etc/passwd

7、输出以"nologin"结尾的行

[linuxmi@linux:~/linuxmi迷]$ awk ‘/nologin$/{print}’ /etc/passwd

8、统计以/bin/bash结尾的行数

[linuxmi@linux:~/linuxmi迷]$ awk ‘BEGIN {x=0} ;/\/bin\/bash$/{x++};END {print x}’ /etc/passwd

9、统计以/bin/bash结尾的行数

[linuxmi@linux:~/linuxmi迷]$ grep -c "/bin/bash$" /etc/passwd

10、统计以空格分隔的文件段落数

[linuxmi@linux:~/linuxmi迷]$ awk ‘BEGIN{RS=""}; END{print NR}’ /etc/dhcp/dhclient.conf

注意:命令较多时,使用"BEGIN……END"

2)按字段输出文本

1、输出每行中(以空格分隔)的第3个字段

[linuxmi@linux:~/linuxmi迷]$ awk ‘{print $3}’ linuxmi.py

2、输出每行中(以空格分隔)的第1个和第3个字段

[linuxmi@linux:~/linuxmi迷]$ awk ‘{print $1,$3}’ linuxmi.py

3)通过管道,双引号调用Shell命令

1、调用"wc -l"命令统计使用"bash"的用户个数

[linuxmi@linux:~/linuxmi迷]$ awk -F: ‘/bash$/{print | "wc -l"}’ /etc/passwd[linuxmi@linux:~/linuxmi迷]$ grep -c "bash$" /etc/passwd

2、调用"w"命令,并用力啊统计在线用户数

[linuxmi@linux:~/linuxmi迷]$ awk ‘BEGIN {while ("w" | getline) n++ ; {print n-2}}’

3、调用"hostname"命令,并输出当前用户名

[linuxmi@linux:~/linuxmi迷]$ awk ‘BEGIN { "hostname" | getline ; print $0}’

4)使用awk命令进行简单的数学运算

[linuxmi@linux:~/linuxmi迷]$ awk ‘BEGIN{ a=9;b=8;print"(a + b)=",(a + b)}’
(a + b)= 17
[linuxmi@linux:~/linuxmi迷]$ awk ‘BEGIN{ a=100;b=78;print"(a – b)=",(a – b)}’
(a – b)= 22
[linuxmi@linux:~/linuxmi迷]$ awk ‘BEGIN{ a=80;b=5;print"(a / b)=",(a / b)}’
(a / b)= 16
[linuxmi@linux:~/linuxmi迷]$ awk ‘BEGIN{ a=80;b=5;print"(a ÷ b)=",(a / b)}’
(a ÷ b)= 16
[linuxmi@linux:~/linuxmi迷]$ awk ‘BEGIN{ a=10;b=9;print"(a × b)=",(a * b)}’
(a × b)= 90

如下图:

到此,关于"Linux系统的awk命令怎么用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

命令 输出 文件 字段 内容 不同 统计 系统 空格 学习 分隔符 文本 用户 一行 信息 可以通过 指令 数学 方法 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 初中网络安全张莉 国家网络安全手抄报要简单的 简易网络技术架构 软件开发去哪里实习好 方舟生存进化怎么退服务器 重庆python软件开发费用 沧州4u机架式服务器厂家 怎么查服务器管理员 三星服务器马甲条比普条便宜 前端页面和数据库通过接口连接 网络安全法全文公布 软件开发合同的售后服务内容 更换服务器方案 同济数据库技术与应用新建项目 面试时总被问及数据库方面 软件开发笔试准备 加工中心数据库如何修改 数据库参数查询命令行 重庆实用的外贸软件开发 国家网络安全应急中心副主任 网络安全法对网络安全 海康流媒体服务器价格 华为软件开发机试 高中毕业生可以学软件开发吗 西安交通大学数据库期末考试 数据库怎么删除关系中的表 打印服务器如何共享使用 江苏超算套料软件开发商 花雨庭服务器怎么导入材质包 域名解析名称和服务器
0