shell之awk初识
2016-11-03 13:52
225 查看
GNU awk:
文本处理三工具:grep, sed, awk
grep, egrep, fgrep:文本过滤工具;pattern
sed: 行编辑器
模式空间、保持空间
awk:报告生成器,格式化文本输出;
awk是指向gawk(GNU/AWK)的一个软链接
[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]
文本处理三工具: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]
相关文章推荐
- 【shell】awk引用外部变量
- shell学习笔记[grep,sed,awk,sort,for,until,while]
- awk中如何使用shell的环境变量
- SHELL [awk]
- Shell编程作业-awk
- Shell中的awk
- shell数值操作(四则运算,浮点数,科学计数法)---awk,bc
- Shell正则表达式与grep、sed、awk的特点
- awk调用shell命令
- awk 与 shell 交互方式
- Leetcode: Word Frequency (shell , awk)
- shell脚本sysbench-while语句和awk
- shell删除文本技巧 —— grep, cut, head, sed, awk
- 数据需求统计常用shell命令---AWK分组求和,分组统计次数
- shell编程之sed和awk
- sed和awk中使用shell变量
- 学习shell, 正则表达式, awk, sed
- shell+awk获取一文件第三列数据并去重
- shell之文本过滤(awk)
- awk中如何使用shell的环境变量