首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从多个CSV打印一次组名和组名以下的成员

如何从多个CSV打印一次组名和组名以下的成员
EN

Stack Overflow用户
提问于 2021-05-06 17:31:24
回答 2查看 60关注 0票数 1

下面是我的代码,它从多个CSV中提取,并打印登录的组名及其成员。

cat *csv | awk '{print $3,$4}' > /output/userreport.txt

问题是,它多次打印出组名。

这是当前的输出示例

约翰,市场部

鲍勃,市场部

罗恩,市场部

托德,金融

蒂姆,金融学

所需的输出将是

市场营销

约翰

鲍勃

罗恩

金融

托德

时间

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-06 17:45:53

我将使用GNU AWK执行以下任务,让file.csv内容成为

代码语言:javascript
运行
复制
A, B, John, Marketing
C, D, Bob, Marketing
E, F, Ron, Marketing
G, H, Todd, Finance
I, J, Tim, Finance

然后

代码语言:javascript
运行
复制
awk 'BEGIN{FS=", "}{if(group!=$4){group=$4;print $4};print $3}' file.csv

输出

代码语言:javascript
运行
复制
Marketing
John
Bob
Ron
Finance
Todd
Tim

说明:我指示awk将空格-逗号作为字段分隔符(FS),然后如果组与上次看到的不同(或空字符串,如果还没有处理),则打印组名。每一行打印第三栏的内容。

(用GNU Awk 5.0.1测试)

票数 2
EN

Stack Overflow用户

发布于 2022-10-26 14:38:00

另一个锥

代码语言:javascript
运行
复制
$ awk -F"," ' { if( !($4 in a) ) { print $4 }  a[$4]++; print $3 } ' ali.txt
 Marketing
 John
 Bob
 Ron
 Finance
 Todd
 Tim

或者更短的形式

代码语言:javascript
运行
复制
awk -F"," '  !($4 in a)  { print $4 } { a[$4]++; print $3 } ' ali.txt
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67423245

复制
相关文章

相似问题

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