![GNU datamash 转置示例似乎无法正常工作](https://linux22.com/image/153909/GNU%20datamash%20%E8%BD%AC%E7%BD%AE%E7%A4%BA%E4%BE%8B%E4%BC%BC%E4%B9%8E%E6%97%A0%E6%B3%95%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C.png)
我正在尝试复制使用 GNU datamash 实用程序转置文件的示例。但我得到了不同的输出。不确定发生了什么。
指示:https://www.gnu.org/software/datamash/examples/#example_transpose
我的输出:
> ~/bin/Installed/datamash transpose < input.txt
Sample Year Count id-123 2014 1002 id-99 2013 990 id-42 2014 2030 id-13 2014 599
>
答案1
input.txt
如果我从示例中复制并粘贴,我会得到与您相同的输出。如果我用一个制表符替换多个空格,则它会起作用,因为制表符是默认分隔符。
$ datamash transpose < <(cat input.txt | tr -s ' ' '\t')
Sample id-123 id-99 id-42 id-13
Year 2014 2013 2014 2014
Count 1002 990 2030 599
或者将多个空格压缩为一个空格并使用 option-t' '
作为字段分隔符:
$ datamash -t' ' transpose < <(cat input.txt | tr -s ' ')
Sample id-123 id-99 id-42 id-13
Year 2014 2013 2014 2014
Count 1002 990 2030 599
或者甚至更好,使用选项-W
或--whitespace
如所指出的钢铁起子(谢谢!):
$ datamash -W transpose < input.txt
Sample id-123 id-99 id-42 id-13
Year 2014 2013 2014 2014
Count 1002 990 2030 599