- 浏览: 88217 次
- 性别:
- 来自: 杭州
最新评论
文章列表
FILENAME:当前文件名 只能在Action里引用,而不能再BEGIN{}里。
ARGC:命令行参数的数目;是一整数,代表命令行上除了选项-v, -f 及其对应的参数之外所有参数的个数ARGV:包含命令行参数字符串数组,ARGV[0],ARGV[1]....ARGV[ARGC-1]分别代表命令行上相对应的参数,
可以引用到文件名
FNR:和NR类似,打开一个文件二者功能一样;只是针对多文件,新打开文件FNR遍从1累加记录
ENVIRON:环境变量 ,关联数组
sub(/^[[:blank:]]*/,"",变量) 是去掉变量左边的空白符
sub(/[[:blank:]]*$/,"",变量) 是去掉变量右边的空白符
gsub(/[[:blank:]]*/,"",变量) 是去掉变量中所有的空白符
示例:
echo ' 123 456 789 ' | awk '{
print "<" $0 ">";
sub(/^[[:blank:]]*/,"",$0);print "[" $ ...
准备一个数据文件 awk-sample-salary.txt
一、Pattern {Action} 详解
这一节的目标:详解 Pattern和{Action}的组合方式, 这两者各自的详解请看下面
这里以简单的正则表达式作为Pattern为例,(Pattern本身又有多种case、组合,请参考 “ 二、Pattern详解 ”)
1.单个Pattern {Action}
/^A/{print} #筛选出以A开头的行,并打印该行数据
//{print} #打印每一行, //表示无条件的匹配,即匹配所有的行 , {print} 没有指定哪一行,默认就是整行,即{p ...
Gawk is the GNU Project’s implementation of the AWK programming language.
-W posix
--posix
This turns on compatibility mode, with the following additional restrictions:
· \x escape sequences are not recognized.
· Only space and ...
//TODO 说明
[xxuser@xxhost ~]$ hadoop jar $HADOOP_STREAMING_JAR \
> -input /test/ylb/mock_data/cv-pt-demo.txt \
> -output /test/ylb/mock_data/output/cv-pt-demo-10 \
> -mapper "awk '\$1~/1/ {printf(\"%s\t%s\n\",\$1,\$2)}'" \
> -reducer "awk 'BEGIN ...
1. 用NR或者FNR来选择行范围
awk 'NR==5,NR==7 {print $0}' demo.txt
awk 'NR>=5 && NR<=7 {print $0}' demo.txt
两者效果一样: 输出demo.txt中从第5行 到 第7行
把 NR 换成 FNR,则表示 如果输入文件有多个,那么每个文件的第一行从0开始计数
awk 'FNR==5,FNR==7 {print $0}' demo1.txt demo2.txt
这两个文件的从第5行 到 第7行
2. /pattern1/, /pa ...
1.concat
select concat("http://",host,":",port) from hostInfo
2.concat_ws concat with seperator
select concat("|", f1,f2 ) from table
3.group_concat group by 的加强版
select age, group_concat(name) from student_info group by age;
参见
http://app ...
在awk中执行shell , 返回0:成功
1. result= system("shell cmd")
调用shell来获取值 并赋值给变量
2.
"shell cmd" |getline valueaa ; print valueaa
"shell cmd" |getline ; print $0 -->如果不加变量名, 则 $0
...
-v 反向选择, 即: 筛选出跟表达式不匹配的行
grep "hi\|hello" test.txt => 搜索包含 hi 或者 hello 的行
grep -v "hi\|hello" test.txt => 搜索不包含 hi 或者 hello 的行
--color=auto 高亮显示
-i
-c
-a
grep 正在表达式
- 博客分类:
- unix正则表达式
元字符,基础
正则表达式之grep
http://linux.chinaunix.net/techdoc/develop/2009/07/19/1124991.shtml
< 锚定单词的开头
^锚定行首
grep -c => grep |wc -l
grep -n "^$" 显示空白行的行号
grep "worldA\|worldB" test.txt
或者用加上(), 参见正在表达式的元字符:方括号的含义2: 选择性
grep "(worldA\|worldB)" test.txt
1 [] 字符类
2 ()
1.组
2.选择性, 如 (hi|hello) , []只能匹配一个字符 如 h[io]
[] () 都可以和 ? + * {n} {n,m} {n,} 组合 以指定匹配次数
3.正则表达式的元字符(组成要素)
http://blog.csdn.net/cyhleo/article/details/6641267
http://linuxbpm.blog.51cto.com/1823930/351964
4. 用"."去匹配任意字符, 注意:.在方括号里只是一个普通 ...
从“用例场景”到“设计模型” , 分析模型可以评价设计是否满足需求,更关键的是评价系统设计的“扩展性”,因为【用高层次的抽象接口来表达系统行为,而把具体实现delay到子类,配置文档,甚至运行期去】的做法使得设计的过程不拘泥于实现细节,从而使产出的接口更具“重用性”
很不错的教程,DEMO丰富
http://www.iteye.com/topic/587673
语法小结
http://www.xxlinux.com/linux/article/development/soft/20070508/8349.html
1. g global , 在一条记录里,全局匹配
sed s/reg1/replace/g
2. & 代表被匹配的项, 如
把 xxx: 这样的项 替换成 xxx:_new
sed s/[a-z]*:/\&_new/
sed 's/[a-z]*:/& ...