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
我正在尝试获得如下所示的 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