当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]高手 看看 如何解决这样的文本处理
帖子发表于 : 2008-06-04 14:29 

注册: 2008-03-22 1:19
帖子: 45
送出感谢: 0 次
接收感谢: 0 次
文件名test
内容:
117 21.88 1
119 21.39 1
120 20.90 1
121 22.54 1
124 22.21 1
125 21.72 1
127 22.54 1
129 22.05 1
131 22.86 1
132 23.35 1
处理结果如下格式:
117 21.88 1119 21.39 1120 20.90 1121 22.54 1124 22.21 1125 21.72 1
127 22.54 1129 22.05 1131 22.86 1132 23.35 1 @@ 0@0.00@0 @@ 0@0.00
即将原文件的每行都连起来,合成一行显示六个,然后不足的用 @@0@0.00 @0补上。其中@表示空格,其具体格式如下
(说明:例117 21.88 1即为117和21.88和1的组合,其格式为%3d%5.2f%2d)


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-06-04 16:18 
头像

注册: 2005-10-04 10:59
帖子: 1928
地址: 上海
送出感谢: 0 次
接收感谢: 1
其实完全可以用vim解决。我现在在windows底下,命令没测试过。

"J"是把两行连接起来,"5J"合并6行。"."是重复上次编辑。所以你大概可以用这样的组合:5Jj.j.j.
剩下就是补个没全的东西了。

如果J合并之后多了个空格,你就需要写macro了。


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-06-04 16:20 
头像

注册: 2007-01-15 17:15
帖子: 3766
送出感谢: 0 次
接收感谢: 0 次
http://forum.ubuntu.org.cn/viewtopic.ph ... highlight=


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-06-04 17:09 
头像

注册: 2006-05-19 9:54
帖子: 1822
地址: Shanghai
送出感谢: 2
接收感谢: 11
感觉lz到这里来是来完成工作的


_________________
ニンニク入れますか?
x60 with gentoo


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-06-04 17:38 
头像

注册: 2005-07-02 14:41
帖子: 4133
系统: Ubuntu 14.04 (Kylin)
送出感谢: 53
接收感谢: 11
Strange 写道:
感觉lz到这里来是来完成工作的


同感。

樓主既然經常面對字符串處理的東東,還是學學grep|sed|awk|perl|python比較好。


_________________
https://weakish.github.io


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-06-14 3:11 
头像

注册: 2008-06-11 14:13
帖子: 10
送出感谢: 0 次
接收感谢: 0 次
创建文件proc.awk
代码:
BEGIN{
   i=0;
}

{
   printf("%3d%6.2f%2d",$1,$2,$3);
   i=i+1;
   if(i>=6){
      printf("\n");
      i=0;
   }
}

END{
   for(;i<6;i++){
      printf("%3d%6.2f%2d",0,0,0);
   }
   printf("\n");
}

执行命令:
代码:
awk -f proc.awk source

其中source是你要处理的文件


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-07-05 18:05 

注册: 2008-07-05 18:03
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
cat cc1.txt | awk 'BEGIN {ORS="\t"} {print $0;if(NR%6==0) printf("\n")} END {total=NR; while(total%6!=0) {printf(" 0 0.00 0");total++};printf("\n")}'


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译