- 论坛徽章:
- 0
|
本帖最后由 happycentos123 于 2012-04-30 21:10 编辑
把下面文件中的带"NO"的位置填充上数字,所要填充的数值为上下行相邻最近有数值行的中间值, 首尾的值和最边上的值一致,如下所示:
NO 14
14 14
输 NO 输 13
入 12 出 12
文 NO 文 8
件 4 件 4
NO 5
6 6
NO 5.5
5 5
NO 6
NO 7
8 8
NO 8
NO 8
NO 8
下面的一个代码可以实现上面的运算。- awk '
- {n++ }
- /^[A-Za-z ]/{next}
- #/N/{next}
- {
- for(i=1;i<=n;i++)
- if(p)
- #if(p!="")
- print p+($1-p)/n*i;
- else
- print $1;p=$1;n=0;
- }
- END{while(n--)print p}' file
复制代码 现在需要对多列包含"NO"的列进行这样的的处理,想不出来怎么样一步就实现出来,只会一列一列cut 出来 ,弄好了再paste到一起,还能有列漂亮简单的么 帮想想谢谢!- 34 15 24 25 54 65 44 NO
- 13 NO 33 45 83 NO 13 18
- 21 NO 41 NO 21 13 21 NO
- 22 12 22 12 92 12 22 12
- 13 NO 53 23 93 NO 53 NO
- 21 4 91 64 21 4 21 5
- 33 NO 83 NO 93 NO 33 NO
- 43 6 23 6 83 9 63 8
- 13 NO 83 67 13 12 23 NO
- 23 5 33 5 23 5 93 5
- 34 NO 84 89 34 NO 24 NO
- 15 NO 75 NO 15 67 45 NO
- 25 NO 15 15 25 NO 35 NO
- 15 NO 95 NO 15 19 85 18
- 34 NO 84 12 34 NO 84 90
- 10 NO 40 NO 80 81 70 NO
复制代码 需要对2 4 6 8 列进行这样的处理 |
|