本帖最后由 kwunkau 于 2016-10-24 10:05 编辑
最近在看到yinyuemi的awk数组学习心得,看到print,printf有一些疑问
- Inputfile
- 1 2 3 4 5 6
- 2 3 4 5 6 1
- 3 4 5 6 1 2
- 4 5 6 1 2 3
- Outputfile
- 4 3 2 1
- 5 4 3 2
- 6 5 4 3
- 1 6 5 4
- 2 1 6 5
- 3 2 1 6
- awk '{
- if (max_nf < NF)
- max_nf = NF # 数组第一维的长度
- max_nr = NR # 数组第二维的长度
- for (x = 1; x <= NF; x++)
- vector[x, NR] = $x #建立数组vector
- }
- END {
- for (x = 1; x <= max_nf; x++) {
- for (y = max_nr; y >= 1; --y)
- printf("%s ", vector[x, y])
- printf("\n")
- }
- }'
复制代码
14行的awk '{ (按了enter键?)这个和awk写在同一行有什么区别吗????
例如这样,awk '{if(max_nf < NF){max_nf=NF;max_nr=NR;for(x=1;x<=NF;i++){vector[x,NR]=$x}}} END {for(x=1;x<=max_nf;x++){for(y = max_nr; y >= 1; --y){print vector[x,y]}}}' Inputfile
上面的命令,一直运行中,是有什么错误吗?求大神解答,另外
printf:可以自定义输出的模式,另外输出内容之后不自动换行 print:输出内容之后自动换行 print和printf就这个区别吗?
总结下问题: 1.awk分开写和写在同一行是有什么区别的
2.awk '{if(max_nf < NF){max_nf=NF;max_nr=NR;for(x=1;x<=NF;i++){vector[x,NR]=$x}}} END {for(x=1;x<=max_nf;x++){for(y = max_nr; y >= 1; --y){print vector[x,y]}}}' --------这命令哪里错了。。。 3.print和printf的区别?
|