Unix uniq -c到csv格式

时间:2015-01-27 02:24:06

标签: unix

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

100 a
99 b
45 c
etc...

仅使用unix utils以csv格式写入文件,顺序颠倒:

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

我想我可以将输出传输到tr " " ","以获取csv格式,但是如何才能使用unix utils来反转列的顺序?

4 个答案:

答案 0 :(得分:2)

cat test.txt | awk '{print $2,$1}'

答案 1 :(得分:0)

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

sed -r 's/(.+) (.+)/\2,\1/'

答案 2 :(得分:0)

对于unix中的这些内衬,我喜欢使用perl。

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

答案 3 :(得分:0)

区别在于","包含在输出中。如果根据@armnotstrong完成,结果将只是由空格分隔的一堆行。

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