awk-example
来源:互联网 发布:电脑速录软件 编辑:程序博客网 时间:2024/05/16 10:54
本文是在linux的shell下运行命令和解说:
本文参考了:http://man.linuxde.net/awk
风哥注:awk是一个和C语言一样的语言,和python语言在命令行中的使用一样,都要在允许的命令之前加python等标记。
一、解说-e是启用转义字符
shawn@shawn-ThinkStation-P700:~/桌面$ echo -e "A line 1 \nA Line 2" | awk 'BEGIN{print "Start"} {print} END{print "End"}' StartA line 1 A Line 2End
二、NR=now recode 当前记录数几行号,NF=now field当前字段即本段有几个分离的单词亦即单词数,其中$0表示本行所有单词,而 $1表示本行第一个单词, $2 $3类推。
shawn@shawn-ThinkStation-P700:~/桌面$ echo -e " line1 f2 f3 \n line2 f4 f5 \n line3 f6 f7"| awk '{print "Line No:"<span style="color: #ff00ff;">NR</span>", No of fields:"<span style="color: #ff00ff;">NF</span>, "$0="<span style="color: #ff00ff;">$0</span>, "$1="<span style="color: #ff00ff;">$1</span>, "$2="<span style="color: #ff00ff;">$2</span>, "$3="<span style="color: #ff00ff;">$3}</span>' <span style="color: #ff00ff;">Line No:</span>1, <span style="color: #ff00ff;">No of fields:</span>3 $0= <span style="color: #ff00ff;">line1 f2 f3</span> $1=line1 $2=f2 $3=f3Line No:2, No of fields:3 $0= <span style="color: #ff00ff;">line2 f4 f5</span> $1=line2 $2=f4 $3=f5Line No:3, No of fields:3 $0= <span style="color: #ff00ff;">line3 f6 f7</span> $1=line3 $2=f6 $3=f7
三、NF前面加$表示从后面数,当然NF-1倒过来就是倒数第二个了。
shawn@shawn-ThinkStation-P700:~/桌面$ echo -e "line1 f2 f3\n line2 f4 f5" | awk '{print <span style="color: #ff00ff;">$NF</span>}'f3f5shawn@shawn-ThinkStation-P700:~/桌面$ echo -e "line1 f2 f3\n line2 f4 f5" | awk '{print <span style="color: #ff00ff;">$(NF-1)</span>}'f2f4
四、另外注意,awk是对每行进行处理、例如获取文件中每行的第二个和第三个字段:
shawn@shawn-ThinkStation-P700:~/桌面$ awk '{ print $2,$3 }' test.txtI could first thing to save to spend I could words could save every I would
五、统计文件中的行数,NR在没一行都会更新一下,所有END里面的NR就是最新的
shawn@shawn-ThinkStation-P700:~/桌面$ awk 'END{print NR}' test.txt15
六、加法计算,seq是序列sequence的意思、
shawn@shawn-ThinkStation-P700:~/桌面$ seq 5 12345shawn@shawn-ThinkStation-P700:~/桌面$ seq 5 | awk 'BEGIN{sum=0;print "总和"} {print $1 "+";sum+=$1} END{print "sum=";print sum}'总和1+2+3+4+5+sum=15
七、变量倒入方法,试了一下不把echo加上,此时出现按回车键不结束,
shawn@shawn-ThinkStation-P700:~/桌面$ VAR=520shawn@shawn-ThinkStation-P700:~/桌面$ echo | awk -v VARIABLE=$VAR '{print VARIABLE}'520shawn@shawn-ThinkStation-P700:~/桌面$ var1="aaa"shawn@shawn-ThinkStation-P700:~/桌面$ var2="bbb"shawn@shawn-ThinkStation-P700:~/桌面$ echo | awk '{print v1,v2}' v1=$var1 v2=$var2aaa bbb
八、逻辑与算术运算
shawn@shawn-ThinkStation-P700:~/桌面$ awk 'BEGIN{a=1;b=1; print (a>5 && b<=2),(a>5 || b<=2);}'0 1
九、匹配正则表达式~,不匹配~!
shawn@shawn-ThinkStation-P700:~/桌面$ awk 'BEGIN{a="100testa";if(a ~ /^100*/){print "OK";}}'OK
0 0
- awk example
- awk-example
- Awk Intro - Example
- awk example :it is common example for two file merge lines--NR,FNR
- example
- example
- Example
- example
- Example
- Example
- Example
- Example
- example
- Example
- Example
- Uinx Shell by Example,3rd Edition第5,6章 awk 章节的答案
- Uinx Shell by Example,3rd Edition第7章 awk编程 章节的答案
- Basic Example of an Array OF AWK 【每日一译】--2013-01-27
- 利用scp传输文件小结
- 吐个槽
- LeetCode #403: Frog Jump
- Eclipse远程debug
- 设置lab字间距,简单方便实用
- awk-example
- Qt/C++ 之重新认识
- rpm安装mysql
- tomcat生成证书与SSL配置
- iOS开发 - 兼容iOS 10 资料整理笔记
- Solr文档学习--Documents, Fields, and Schema Design
- 推荐4个Android引导页控件
- treemap
- Android APK的生成流程