Unix uniq-c到csv格式
我试图获得如下所示的uniq-c输出:Unix uniq-c到csv格式,unix,Unix,我试图获得如下所示的uniq-c输出: 100 a 99 b 45 c etc... 要仅使用unix UTIL以csv格式写入文件,并颠倒顺序,请执行以下操作: a,100 b,99 c,45 etc... 我想我可以将输出导入tr”“,“以获得csv格式,但如何仅使用unix UTIL获得要反转的列的顺序呢?armnotstrong可能是最简单的,但您也可以使用sed cat test.txt | awk '{print $2,$1}' sed -r 's/(.+) (.+)/\2,\
100 a
99 b
45 c
etc...
要仅使用unix UTIL以csv格式写入文件,并颠倒顺序,请执行以下操作:
a,100
b,99
c,45
etc...
我想我可以将输出导入
tr”“,“
以获得csv格式,但如何仅使用unix UTIL获得要反转的列的顺序呢?armnotstrong可能是最简单的,但您也可以使用sed
cat test.txt | awk '{print $2,$1}'
sed -r 's/(.+) (.+)/\2,\1/'
对于unix中的这些单行程序,我喜欢使用perl
uniq -c yourfile | perl -lne 's/^(\s*)(\d*)(\s*)(.*)/$4,$2/g; print $_'
不同之处在于输出中包含“,”的方式。如果按照@armnotstrong进行操作,结果将只是一组由空格分隔的线
bash
=>猫文本
100 a
99 b
98摄氏度
=>cat文本| awk'{print$2',“$1}”
a、 一百
b、 九十九
c、 98
这似乎在两个参数之间添加了一个^M
字符:a^M 100
您知道如何消除此问题吗?然后,检查原始数据,第一列后面必须有一个^M
。它是一个控制字符,您可以使用“代码> SED S/^ M//G′/CODE”将其处理为正常字符串,请注意,在控制台或VIMHMM中,输入一个序列密钥输入Ctrl +V CTRL+M,这似乎是规范中所需的行终止符,因此这就是为什么AWK将其放在中间的原因。有没有什么方法可以把它放在最后,例如,100^M
?quick Thinkcat test.txt | sed's/^M//g'| awk'{print$2,$1“^M”}
^M
应该像上面提到的帖子一样输入。