首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在linux中使用awk命令获得",“分隔输出

如何在linux中使用awk命令获得",“分隔输出
EN

Stack Overflow用户
提问于 2019-06-24 21:11:51
回答 1查看 78关注 0票数 0

我试图用",“分隔来打印awk命令的输出。试图获得相同的输出使用削减。

代码语言:javascript
复制
cat File1
dot|is-big|a
dot|is-round|a
dot|is-gray|b
cat|is-big|a
hot|in-summer|a
dot|is-big|a
dot|is-round|b
dot|is-gray|a
cat|is-big|a
hot|in-summer|a

已尝试指挥:

代码语言:javascript
复制
$awk 'BEGIN{FS="|"; OFS=","} {print $1,$3}'  file1.csv | sort |  uniq -c

产出:

代码语言:javascript
复制
  2 cat,a
  4 dot,a
  2 dot,b
  2 hot,a

期望产出:

代码语言:javascript
复制
  2,cat,a
  4,dot,a
  2,dot,b
  2,hot,a

其他几个命令尝试了:

代码语言:javascript
复制
$cat file1.csv |cut --output-delimiter="|"  -d'|' -f1,3 | sort | uniq -c
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-24 21:19:34

运行,后,需要将分隔符更改为uniq -c,因为它添加了第一列。

代码语言:javascript
复制
awk -F'|' '{print $1, $3}' file1.csv | sort | uniq -c | awk 'BEGIN{OFS=","} {$1=$1;print}'

但是您不需要使用sort | uniq -c,如果您使用的是awk,它可以自己进行计数。

代码语言:javascript
复制
awk 'BEGIN{FS="|";OFS=","} {a[$1 OFS $3]++} END{for(k in a) print a[k], k}' file1.csv
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56743999

复制
相关文章

相似问题

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