awk命令 – 文本和数据进行处理的编程语言

标签:,
来源: 老季博客
日期: 2022-12-30
作者: 腾讯云/服务器VPS推荐评测/Vultr
阅读数: 48

awk命令来自于三位创始人”Alfred Aho,Peter Weinberger, Brian Kernighan “的姓氏缩写,其功能是用于对文本和数据进行处理的编程语言。使用awk命令可以让用户自定义函数或正则表达式对文本内容进行高效管理,与sed、grep并称为Linux系统中的文本三剑客。

语法格式:awk 参数 文件

常用参数:

-F 指定输入时用到的字段分隔符
-v 自定义变量
-f 从脚本中读取awk命令
-m 对val值设置内在限制

内置变量:

变量名称 说明
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符

参考实例

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

[root@jiloc ~]# awk ' {print $1,$2} ' anaconda-ks.cfg 
#version=RHEL8  ignoredisk --only-use=sda autopart --type=lvm # Partition clearpart --none ………………省略部分输出信息………………

以冒号为间隔符,仅显示指定文件中第1列的内容:

[root@jiloc ~]# awk -F : '{print $1}' /etc/passwd 
root bin daemon adm lp sync shutdown 
………………省略部分输出信息………………

以冒号为间隔符,显示系统中所有UID号码大于500的用户信息(第3列):

[root@jiloc ~]# 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 ………………省略部分输出信息………………

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

[root@jiloc ~]# awk '/root/{print}' anaconda-ks.cfg  
rootpw --iscrypted $6$n9sZuTcY8Yzk4l.Q$LsuMNAROewyx.LomDtPpL9iJIOD3tsRThnzsAGE0hZXLMtdVCHVQ3pxzm3El8K2kuhcYLXJnhz.xUDGiE27s/1 pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty

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

[root@jiloc ~]# awk -F: '{print $NF}' /etc/passwd  
/bin/bash  
/sbin/nologin  
/sbin/nologin  
/sbin/nologin  
/sbin/nologin  
/bin/sync  
………………省略部分输出信息………………

链接到文章: https://jiloc.com/48174.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注