awk命令
- awk命令用于Linux下的文本处理。数据可以来自文件或标准输入,支持正则表达式等功能,是Linux下强大的文本处理工具。
示例
#$1与$3相连输出,不分隔 [[email protected] ~]# awk -F ":" ‘{print $1 $3}‘ /etc/passwd #多了一个逗号,$1与$3使用空格分隔 [[email protected] ~]# awk -F ":" ‘{print $1,$3}‘ /etc/passwd #显示每行有多少字段 [[email protected] ~]# awk -F: ‘{print NF}‘ /etc/passwd #将每行第NF个字段的值打印出来 [[email protected] ~]# awk -F: ‘{print $NF}‘ /etc/passwd #依次打印行号,字段数,最后字段值,制表符,每行内容 [[email protected] ~]# awk -F: ‘{print NR,NF,$NF,"\t",$0}‘ /etc/passwd #显示第5行 [[email protected] ~]# awk -F: ‘NR==5{print}‘ /etc/passwd lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 显示第5行和第6行 [[email protected] ~]# awk -F: ‘NR==5 || NR==6{print}‘ /etc/passwd lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync #纯字符匹配 [[email protected] ~]# awk ‘/mysql/‘ /etc/passwd mysql:x:27:27:MySQL Server:/var/lib/mysql:/sbin/nologin #不匹配mysql的行 [[email protected] ~]# awk ‘!/mysql/‘ /etc/passwd #匹配区间 [[email protected] ~]# awk -F: ‘/mail/,/mysql/{print}‘ /etc/passwd #匹配包含27为数字开头的行,如27,277,2777... [[email protected] ~]# awk -F: ‘/[2][7][7]*/{print $0}‘ /etc/passwd #匹配指定内容才显示 [[email protected] ~]# awk -F: ‘$1~/mail/{print $1}‘ /etc/passwd mail
参数说明
-F指定分隔符
//匹配代码块
!//纯字符不匹配
~//字段值匹配
!~//字段值不匹配
~/a1|a2/字段值匹配a1或a2
条件表达式 == != > >=
逻辑运算符 && ||
原文地址:https://blog.51cto.com/9103824/2378475
时间: 2024-10-07 08:46:43