Linux awk命令:对文本和数据进行处理的编程语言
awk 命令来自三位创始人 Alfred Aho、Peter Weinberger、Brian Kernighan 的姓氏缩写,其功能是对文本和数据进行处理。
使用 awk 命令可以让用户自定义函数或正则表达式,对文本内容进行高效管理,awk 与 sed、grep 并称为 Linux 系统中的“文本三剑客”。
Linux awk 命令语法格式:
2) 以冒号为间隔符,仅显示指定文件中第1列的内容:
3) 以冒号为间隔符,显示系统中所有 UID 号码大于 500 的用户信息(第3列):
4) 仅显示指定文件中含有指定关键词 root 的内容:
5) 以冒号为间隔符,仅显示指定文件中最后一个字段的内容:
声明:《Linux系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
使用 awk 命令可以让用户自定义函数或正则表达式,对文本内容进行高效管理,awk 与 sed、grep 并称为 Linux 系统中的“文本三剑客”。
Linux awk 命令语法格式:
awk 参数 文件名
参数 | 说明 | 参数 | 说明 |
---|---|---|---|
-c | 使用兼容模式 | -h | 显示帮助信息 |
-C | 显示版权信息 | -m | 对指定值进行限制 |
-e | 指定源码文件 | -n | 识别输入数据中的八进制和十六进制数 |
-f | 从脚本中读取awk命令 | -O | 启用程序优化 |
-F | 设置输入时的字段分隔符 | -v | 定义一个变量并赋值 |
-v | 自定义变量信息 | -V | 显示版本信息 |
变量 | 说明 | 变量 | 说明 |
---|---|---|---|
ARGC | 命令行参数个数 | NF | 浏览记录域的个数 |
ARGV | 命令行参数排列 | NR | 已读的记录数 |
ENVIRON | 支持在队列中使用系统环境变量 | OFS | 输出域分隔符 |
FILENAME | awk浏览的文件名 | ORS | 输出记录分隔符 |
FNR | 浏览文件的记录数 | RS | 控制记录分隔符 |
FS | 设置输入域分隔符 |
参考示例
1) 仅显示指定文件中第 1、2 列的内容(默认以空格为间隔符):[root@54benniao ~]# awk '{print $1,$2}' File.cfg #version=RHEL8 ignoredisk --only-use=sda autopart --type=lvm # Partition clearpart --none ………………省略部分输出信息………………
2) 以冒号为间隔符,仅显示指定文件中第1列的内容:
[root@54benniao ~]# awk -F : '{print $1}' /etc/passwd root bin daemon adm lp sync shutdown ………………省略部分输出信息………………
3) 以冒号为间隔符,显示系统中所有 UID 号码大于 500 的用户信息(第3列):
[root@54benniao ~]# 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 geoclue:x:997:995:User for geoclue:/var/lib/geoclue:/sbin/nologin ………………省略部分输出信息………………
4) 仅显示指定文件中含有指定关键词 root 的内容:
[root@54benniao ~]# awk '/root/{print}' File.cfg rootpw --iscrypted $6$n9sZuTcY8Yzk4l.Q$LsuMNAROewyx.LomDtPpL9iJIOD3tsRThnzsAGE0hZX LMtdVCHVQ3pxzm3El8K2kuhcYLXJnhz.xUDGiE27s/1 pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
5) 以冒号为间隔符,仅显示指定文件中最后一个字段的内容:
[root@54benniao ~]# awk -F : '{print $NF}' /etc/passwd /bin/bash /sbin/nologin /sbin/nologin /sbin/nologin /sbin/nologin /bin/sync ………………省略部分输出信息………………
声明:《Linux系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。