Unix uniq -c 转csv格式

Unix uniq -c to csv format

我正在尝试获得如下所示的 uniq -c 输出:

100 a
99 b
45 c
etc...

仅使用 unix 实用程序写入 csv 格式的文件,顺序相反:

a,100
b,99
c,45
etc...

我想我可以将输出通过管道传输到 tr " " "," 以获得 csv 格式,但是如何只使用 unix utils 来反转列的顺序?

cat test.txt | awk '{print ,}'

armnotstrong 的可能是最简单的,但您也可以使用 sed

sed -r 's/(.+) (.+)/,/'

对于unix中的这些代码,我喜欢使用perl。

uniq -c yourfile | perl -lne 's/^(\s*)(\d*)(\s*)(.*)/,/g; print $_'

不同之处在于“,”如何包含在输出中。如果按照@armnotstrong 完成,结果将只是一堆由空格分隔的行。

bash => cat text 100 a 99 b 98 c => cat text | awk '{print ","}' a,100 b,99 c,98