免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2728 | 回复: 10
打印 上一主题 下一主题

求解:以第一行中某个域为判断条件来改变该域下的值 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-09 10:24 |只看该作者 |倒序浏览
用awk来实现

以第一行中某个域为判断条件来改变该域下的值

例如:

x b c d    x==a    a   b c d
1 2 3 4   ------>  10  2 3 4
4 3 2 1               40  3 2 1

x b c d    x!=a     x  b c d
1 2 3 4   ------>  1  2 3 4
4 3 2 1               4  3 2 1


x不是个固定的值,有可能是a,也有可能等于其他,

判断
if
第一个域x==a 时,a域下的值 1*10,4*10

else
值不变,还是等于1和4



不知道问题有没有说清楚,求各位高手帮帮忙,在线等~

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2011-12-09 10:48 |只看该作者
回复 1# hllzxh


    处女贴啊。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
3 [报告]
发表于 2011-12-09 10:52 |只看该作者
  1. awk 'NR==1{x=$1}NR>1&&x=="a"{$1*=10}1' urfile
复制代码
大概是这样,根据你自己的数据来微调。

论坛徽章:
0
4 [报告]
发表于 2011-12-09 10:54 |只看该作者
回复 2# blackold


      呃..也不算是了...以前在chinaunix有个号的,用的不多,把密码忘了...填忘记密码时,邮箱不对... 所以再申请个号来求问题的解答了..

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
5 [报告]
发表于 2011-12-09 10:57 |只看该作者
回复 4# hllzxh


    哦,那是修补过的。

论坛徽章:
0
6 [报告]
发表于 2011-12-09 10:59 |只看该作者
回复 3# blackold


可能我还是没说清楚...真不好意思...我这表达能力不行...

那个x其实并不是个变量..有可能一开始就是a,也有可能一开始是m或者n...

判断前有可能是这样的:
a b c d   
1 2 3 4   
4 3 2 1   

也有可能是这样的:
m b c d   
1 2 3 4   
4 3 2 1   

也就是判断第一个域为a时,a域下的值都乘以10,如果第一个域为其他时,则值保持不变..

x只是我在发帖时临时写的..

论坛徽章:
0
7 [报告]
发表于 2011-12-09 11:00 |只看该作者
回复 5# blackold


    很邪恶....{:3_182:}

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
8 [报告]
发表于 2011-12-09 11:02 |只看该作者
直接说你的原数据,之后说你要的结果。

论坛徽章:
0
9 [报告]
发表于 2011-12-09 11:07 |只看该作者
回复 8# blackold


OK~搞定了!!我想了下,x可以做为一个新增的变量传进去的...所以直接用这种方法是可以的,多谢猫头鹰大哥帮忙!

论坛徽章:
71
15-16赛季CBA联赛之同曦
日期:2018-08-23 15:41:42辰龙
日期:2014-08-15 09:07:43狮子座
日期:2014-06-03 13:55:33亥猪
日期:2014-06-02 11:17:08巨蟹座
日期:2014-05-06 10:02:03午马
日期:2014-05-04 08:18:27亥猪
日期:2014-04-29 11:11:32技术图书徽章
日期:2014-04-24 15:51:26技术图书徽章
日期:2014-04-17 11:01:53辰龙
日期:2014-04-15 12:45:46亥猪
日期:2014-04-11 09:06:23射手座
日期:2014-04-01 15:28:10
10 [报告]
发表于 2011-12-09 11:42 |只看该作者
猫头鹰大哥
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP