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 条件表达式 == != > >= 逻辑运算符 && ||
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|