awk 常用函数!
来源:互联网 发布:淘宝卖家开通直播条件 编辑:程序博客网 时间:2024/05/01 17:19
1.split //split(域名,数组,分隔符) [root@localhost ~]# cat a abc abd abe abf abg [root@localhost ~]# awk '{split($0,a," "); print length(a);for(i in a) print a[i]}' a //$0按空格作为分隔符,顺序存入数组a中 5 abf abg abc abd abe 2.sub //替换函数,sub(旧字符串,新字符串,作用域) [root@localhost ~]# echo abc abc abc abc | awk '{sub("c","k",$4); print }' //把第4个作用域的c替换为k abc abc abc abk [root@localhost ~]# echo abc abc abc abc | awk '{sub("c","k"); print }' //没写作用域,默认匹配第一次 abk abc abc abc 3.gsub //相比sub,多了global参数 [root@localhost ~]# echo abc abc abc abc | awk '{gsub("c","k"); print }'abk abk abk abk [root@localhost ~]# echo abc abc abc abc | awk '{gsub("c","k",$4); print }'abc abc abc abk 4.index //index(作用域,字符串) [root@localhost ~]# echo abc ack | awk '{if(index($1,"k")) print "yes";else print "no"; }'no[root@localhost ~]# echo abc ack | awk '{if(index($2,"k")) print "yes";else print "no"; }'yes [root@localhost ~]# echo abc ack | awk '{print index($2,"k")}' //查到匹配字符串位置 3 5.length(s) //打印字符串长度 [root@localhost ~]# echo abcdefg hijkl | awk '{ print length($0) }'13 6.match //match(作用域,字符串) 跟index类似 [root@localhost ~]# echo abc abk | awk '{ print match($2,"k") }'3 [root@localhost ~]# echo abc abk | awk '{ print match($1,"k") }'0 7.substr //截取字符串,substr(作用域,开始位置,结束位置) [root@localhost ~]# echo abc abchelloworld | awk '{b=substr($2,4); print b}' //没有结束位置,默认到结尾 helloworld [root@localhost ~]# echo abc abchelloworld | awk '{b=substr($2,4,5); print b}' //第4个字符开始取出5个字符hello 6.tolower(s) //字符串转换为小写 [root@localhost ~]# echo ABC ABC ABC | awk '{print tolower($0)}'abc abc abc [root@localhost ~]# echo ABC ABC ABC | awk '{b=tolower($2); print b}'abc 7.toupper(s) //字符串转换为大写 [root@localhost ~]# echo abc abc abc | awk '{print toupper($0)}'ABC ABC ABC [root@localhost ~]# echo abc abc abc | awk '{b=toupper($2); print b}'ABC 8.system() //执行系统命令 [root@localhost ~]# awk 'BEGIN{ print system("ls -a") }'. .bash_logout .dmrc .gnome .ICEauthority .mysql_history .Trash .. .bash_profile .eggcups .gnome2 install.log .nautilus .viminfo a .bashrc .evolution .gnome2_private install.log.syslog .redhat .Xauthority anaconda-ks.cfg .cshrc .gconf .gstreamer-0.10 .metacity .tcshrc .bash_history Desktop .gconfd .gtkrc-1.2-gnome2 .mozilla .thumbnails 0 9.gensub() //gensub(旧字符串,新字符串,替换位置,作用域) [root@localhost ~]# echo abaa adaa aaaa | awk '{b=gensub("a","k",3,$3); print b}'aaka [root@localhost ~]# echo abaa adaa aaaa | awk '{b=gensub("a","k",4,$3); print b}'aaak 10.strftime() //时间函数 [root@localhost ~]# awk 'BEGIN{ now=strftime("%y-%m-%d %H-%M-%S"); print now}'13-01-12 21-14-30 getline //获取下一行,以下几种常用用法 [root@localhost ~]# echo -e "abc\nabd\nabe" > a [root@localhost ~]# awk 'BEGIN{ getline < "a"; print }'abc [root@localhost ~]# awk '/abc/{ getline tmp; print tmp; print }' a //当前行和下一行对调abd abc [root@localhost ~]# awk 'BEGIN { getline < "-"; print }' //打印键盘输入的内容hello hello [root@localhost ~]# awk '{ getline line < "a"; print line }' a //打印出文件内容abc abd abe [root@localhost ~]# seq 10 | awk '{getline; print}' //注与BEGIN的区别,此处awk指针有跳转 2 4 6 8 10 [root@localhost ~]# seq 10 | awk 'BEGIN{while(getline)print}' //此处awk指针没有跳转 1 2 3 4 5 6 7 8 9 10 next //结束当前行,读取下一行,并从从头执行命令 [root@localhost ~]# cat a abc abd abe [root@localhost ~]# awk '/abc/{print "yes"; next;}{ print "no"}' a yes nono exit //退出执行 [root@localhost ~]# echo -e "a\na\na\na\na\na\nb\na\na" | awk '/b/{exit;}{print "yes"}'yes yes yes yes yes yes
0 0
- awk常用函数
- #AWK#常用函数说明
- awk 常用函数!
- awk 常用函数
- awk常用字符串处理函数
- linux awk常用函数总结
- awk常用函数以及变量参考
- linux shell awk常用函数积累
- AWK常用
- awk中的常用的字符串函数和数学函数
- awk(五)awk函数
- awk 函数
- shell学习8--awk中常用的内置函数
- awk(1) awk中的函数
- AWK 常用功能
- awk命令常用实例
- awk常用脚本
- 常用AWK命令
- 四、Linux常用命令之文件操作篇(cat、more、head、tail、ln、chmod、chown、chgrp、umask)
- 两台电脑共用键盘鼠标
- leetcode Integer to Roman
- Date、Calendar和StringBuffer的综合使用
- Autorelease的疑问
- awk 常用函数!
- winpcap学习(二)
- 《实时碰撞检测算法技术》读书笔记(五):最近点计算(上)
- 作业02
- 多线程环境下使用的单例模式的实现
- protected的语法
- 编程之美2.19——区间重合判断(线段树)
- 杭电-亲和数
- mysql笔记