下面是我的代码,它从多个CSV中提取,并打印登录的组名及其成员。
cat *csv | awk '{print $3,$4}' > /output/userreport.txt
问题是,它多次打印出组名。
这是当前的输出示例
约翰,市场部
鲍勃,市场部
罗恩,市场部
托德,金融
蒂姆,金融学
所需的输出将是
市场营销
约翰
鲍勃
罗恩
金融
托德
时间
发布于 2021-05-06 17:45:53
我将使用GNU AWK
执行以下任务,让file.csv
内容成为
A, B, John, Marketing
C, D, Bob, Marketing
E, F, Ron, Marketing
G, H, Todd, Finance
I, J, Tim, Finance
然后
awk 'BEGIN{FS=", "}{if(group!=$4){group=$4;print $4};print $3}' file.csv
输出
Marketing
John
Bob
Ron
Finance
Todd
Tim
说明:我指示awk
将空格-逗号作为字段分隔符(FS
),然后如果组与上次看到的不同(或空字符串,如果还没有处理),则打印组名。每一行打印第三栏的内容。
(用GNU Awk 5.0.1测试)
发布于 2022-10-26 14:38:00
另一个锥
$ awk -F"," ' { if( !($4 in a) ) { print $4 } a[$4]++; print $3 } ' ali.txt
Marketing
John
Bob
Ron
Finance
Todd
Tim
或者更短的形式
awk -F"," ' !($4 in a) { print $4 } { a[$4]++; print $3 } ' ali.txt
https://stackoverflow.com/questions/67423245
复制相似问题