首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CSV处理:将列/行值移动到列值匹配的不同行

CSV处理:将列/行值移动到列值匹配的不同行
EN

Unix & Linux用户
提问于 2019-02-11 18:52:53
回答 1查看 177关注 0票数 0

我有一个csv文件,大约有50列,可以在20到100行之间。

各个记录都有ID,一些记录可以在一个2的组中。本质上,我需要做的是将ID添加到该组中的另一个ID所在的同一行。示例:

代码语言:javascript
运行
复制
ID     ,group,blank column
2019-1 ,     ,
2019-2 ,GRP1 ,
2019-3 ,GRP2 ,
2019-4 ,GRP1 ,
2019-5 ,     ,
2019-6 ,GRP2 ,

我想要的输出是:

代码语言:javascript
运行
复制
ID     ,group,blank column
2019-1 ,     ,
2019-2 ,GRP1 ,2019-4
2019-3 ,GRP2 ,2019-6
2019-5 ,     ,

在我使用awk的尝试中,我没有任何运气。我要么忽略没有组的行,要么重复值。

EN

回答 1

Unix & Linux用户

发布于 2019-02-11 19:10:07

代码语言:javascript
运行
复制
perl -a -F, -ne 'if($F[1]=~/\S/) { push @{$d{$F[1]}}, $F[0]; } else { print ; }
  END {
    for(keys %d){
      print shift @{$d{$_}},",$_, ",@{$d{$_}},"\n"
    }
  }' my.csv
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/500009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档