您的位置:首页 > 运维架构 > Shell

shell之awk初识

2016-11-03 13:52 225 查看
GNU awk:

文本处理三工具:grep, sed, awk

  grep, egrep, fgrep:文本过滤工具;pattern

  sed: 行编辑器

    模式空间、保持空间

  awk:报告生成器,格式化文本输出;

 awk是指向gawk(GNU/AWK)的一个软链接

# ll /bin/awk
 lrwxrwxrwx. 1 root root 4 Mar 16 08:30 /bin/awk -> gawk


[root@bogon ~]# awk -v FS=':' -v OFS=':' '{print $1,$3}' /etc/passwd
[root@bogon ~]# awk -F: '{print NF}' /etc/passwd
[root@bogon ~]# awk -F: '{print $NF}' /etc/passwd[/code]
[root@bogon ~]# awk 'BEGIN{print ARGC}' /etc/passwd /etc/fstab
3
[root@bogon ~]# awk 'BEGIN{print ARGV[0]}' /etc/passwd /etc/fstab
awk[/code]
[root@bogon ~]# awk 'BEGIN{test="hello";print test}'
hello[/code]
[root@bogon ~]# awk -F: '{printf "username:%-10s id:%d\n",$1,$3}' /etc/passwd[/code]
[root@bogon ~]# awk -F: '(NR>=2&&NR<=10){print $1}' /etc/passwd[/code]
[root@bogon ~]# awk -F: '{if($3>=1000) {printf "Common user: %s\n",$1} else {printf "Sysuser: %s\n",$1}}' /etc/passwd[/code]

[root@bogon ~]# awk '{if(NF>5) print $0}' /etc/fstab[/code]
[root@bogon ~]# awk '/^[[:space:]]*kernel/{i=1;while(i<=NF) {print $i,length($i); i++}}' /etc/grub.conf[/code]
[root@bogon ~]# awk '/^[[:space:]]*kernel/{for(i=1;i<=NF;i++) {print $i,length($i)}}' /etc/grub.conf[/code]
[root@bogon ~]# awk 'BEGIN{weekdays["mon"]="Monday";weekdays["tue"]="Tuesday";for(i in weekdays) {print weekdays[i]}}'[/code]
[root@bogon ~]# awk '{ip[$1]++}END{for(i in ip) {print i,ip[i]}}' /var/log/httpd/access_log[/code]
[root@bogon ~]# awk '{for(i=1;i<=N
b167
F;i++){count[$i]++}}END{for(i in count) {print i,count[i]}}' /etc/fstab[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  awk linux