我正在尝试获得如下所示的uniq -c输出:
100 a
99 b
45 c
etc...
仅使用unix utils以csv格式写入文件,顺序颠倒:
a,100
b,99
c,45
etc...
我想我可以将输出传输到tr " " ","
以获取csv格式,但是如何才能使用unix utils来反转列的顺序?
答案 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