gpt4 book ai didi

linux - 如何在 linux 中使用 awk 命令获取 ","分隔输出

转载 作者:太空宇宙 更新时间:2023-11-04 10:00:26 25 4
gpt4 key购买 nike

我正在尝试用“,”分隔打印 awk 命令的输出。尝试使用 cut 获得相同的输出。

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

命令已尝试:

$awk 'BEGIN{FS="|"; OFS=","} {print $1,$3}'  file1.csv | sort |  uniq -c

得到的输出:

  2 cat,a
4 dot,a
2 dot,b
2 hot,a

期望的输出:

  2,cat,a
4,dot,a
2,dot,b
2,hot,a

尝试了其他几个命令:

$cat file1.csv |cut --output-delimiter="|"  -d'|' -f1,3 | sort | uniq -c

最佳答案

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

awk -F'|' '{print $1, $3}' file1.csv | sort | uniq -c | awk 'BEGIN{OFS=","} {$1=$1;print}'

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

awk 'BEGIN{FS="|";OFS=","} {a[$1 OFS $3]++} END{for(k in a) print a[k], k}' file1.csv

关于linux - 如何在 linux 中使用 awk 命令获取 ","分隔输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56743999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com