免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2043 | 回复: 8

資料欄的工作 [复制链接]

论坛徽章:
0
发表于 2007-10-31 14:12 |显示全部楼层
我有一個檔案  格試如下  第一個欄位是日期  後面是資料  但是我想比對  如果第二格大於第一格的話 前後加上1個x
請問這樣可以作的到嗎   謝謝


--------------------------------------原始檔案
20071029,104881,54140,139630,118,  
20071030,104884,54140,139630,118,  
20071031,104899,54140,139630,118,  

--------------------------------------想要變成這樣
20071029,104881,54140,139630,118,  
20071030,x104884x,54140,139630,118,  
20071031,x104899x,54140,139630,118,  

我猜是要用awk作

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2007-10-31 14:22 |显示全部楼层
能用简体中文说一遍么?

论坛徽章:
0
发表于 2007-10-31 14:25 |显示全部楼层
  1. awk 'BEGIN{FS=OFS=",";old=9999999}{tmp=$2}old<$2{$2="x"$2"x"}{print;old=tmp}'
复制代码

论坛徽章:
0
发表于 2007-10-31 14:32 |显示全部楼层
呵呵 网中人大哥看着合适:)


  1. 审错题鸟。。。:mrgreen:
复制代码

[ 本帖最后由 davistar 于 2007-10-31 15:03 编辑 ]

论坛徽章:
0
发表于 2007-10-31 14:55 |显示全部楼层
原帖由 davistar 于 2007-10-31 14:32 发表
呵呵 网中人大哥看着合适:)


awk  'BEGIN{OFS=FS=","}{if(NR==1)a=$2;$2=($2



有逻辑错误,他的要求是如果上一行的第二字段小于本行的第二字段就加X,因此,需要保存上一行的第二字段的值,而不是仅仅与第一行的第二字段值进行比较

论坛徽章:
0
发表于 2007-10-31 15:02 |显示全部楼层

回复 #5 springwind426 的帖子

晕 理解错lz的意思了 谢谢spring兄提醒

论坛徽章:
0
发表于 2007-10-31 16:03 |显示全部楼层
20071029,104881,54140,139630,118,  
20071030,104884,54140,139630,118,  
20071031,104899,54140,139630,118,  

借地方问一下,我要实现输出倒数第二列怎么写?(或者倒数第n列?)

论坛徽章:
0
发表于 2007-10-31 16:07 |显示全部楼层

回复 #7 linuxnextyear 的帖子


  1. awk -F, '{NF=NF-n;print $NF}' file

  2. n是自然数
复制代码

论坛徽章:
0
发表于 2007-10-31 16:18 |显示全部楼层
多谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP