Linux三剑客(3)·awk
  U9ElBp9F5cmM 2023年11月19日 18 0

对文本和数据进行处理的编程语言

awk命令的功能是用于对文本和数据进行处理的编程语言。使用awk命令可以让用户自定义函数或正则表达式对文本内容进行高效管理,与sed、grep并称为Linux系统中的文本三剑客

语法格式:awk 参数 文件名

常用参数


-c

使用兼容模式

-C

显示版权信息

-e

指定源码文件

-f

从脚本中读取awk命令

-F

设置输入时的字段分割符

-v

自定义变量信息

-h

显示帮助信息

-m

对指定值进行限制

-n

识别输入数据中得到八进制和十六进制数

-O

启用程序优化

-v

定义一个变量并赋值

-V

显示版本信息

内置变量


变量名称

说明

ARGC

命令行参数个数

ARGV

命令行参数排列

ENVIRON

支持队列中系统环境变量的使用

FILENAME

awk浏览的文件名

FNR

浏览文件的记录数

FS

设置输入域分隔符

NF

浏览记录域的个数

NR

已读的记录数

OFS

输出域分隔符

ORS

输出记录分割符

RS

控制记录分割符

参考示例

仅显示指定文件中第1、 2列的内容(默认以空格为分割符)

[root@localhost ~]# awk '{print $2,$3}' /etc/fstab



/etc/fstab

Created by


Accessible filesystems,

See man


After editing

units generated


/ xfs

/boot xfs

none swap

以冒号为分隔符,显示第三列的内容

[root@localhost ~]# awk -F : '{print $3}' /etc/passwd

0

1

2

3

4

5

6

7

8

11

12

14

65534

81

999

193

59

998

997

996

以冒号为分隔符,显示/etc/passwd文件中所有UUID号码(第三列)大于500的用户信息

# 打印出uuid大于500的用户信息

[root@localhost ~]# awk -F : '$3 > 500' /etc/passwd

nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin

systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin

polkitd:x:998:996:User for polkitd:/:/sbin/nologin

unbound:x:997:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin

sssd:x:996:993:User for sssd:/:/sbin/nologin

rngd:x:995:992:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin


# 仅打印出uuid大于500的用户名和uuid号

[root@localhost ~]# awk -F : '$3 > 500''{print $3}' /etc/passwd

65534

999

998

997

996

995

仅显示指定文件中含有关键词root的内容

[root@localhost ~]# awk '/root/' /etc/passwd

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin


[root@localhost ~]# awk '/root/{print}' /etc/passwd

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

以冒号为分隔符,仅显示指定文件中最后一个字段的内容:

[root@localhost ~]# awk -F : '{print $NF}' /etc/passwd

/bin/bash

/sbin/nologin

/sbin/nologin

/sbin/nologin

/sbin/nologin

/bin/sync

/sbin/shutdown

/sbin/halt

/sbin/nologin

/sbin/nologin


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
  6YY0QMPUXEwu   2023年12月10日   11   0   0 linux网卡
  jnZtF7Co41Wg   2023年12月09日   15   0   0 客户端服务端数据
  nIt0XG0acU8j   2023年12月11日   15   0   0 linuxhtop