GNU datamash transposeの例がうまくいかないようです

GNU datamash transposeの例がうまくいかないようです

私は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例をコピーして貼り付けると、同じ結果が得られます。複数のスペースを1つのタブに置き換えると、タブはデフォルトの区切り文字であるため機能します。

$ 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

または、複数のスペースを1つのスペースに圧縮し、オプションを-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

関連情報