各列をファイル bash の末尾に移動

各列をファイル bash の末尾に移動

~次のように、文字で区切られた不明な数の列を含むファイルがあります。

1~5~4
toast~8~test
3~9~8

各列を繰り返して一番下に移動するにはどうすればよいですか?私は出力が次のようになります:

1
toast
3
5
8
9
4
test
8

列数を決定する必要があることはわかっていますが、そうしてから繰り返して移動する方法がわかりません。

ベストアンサー1

使用できますrsアル字型金利Sもし)ユーティリティ

  1. ~最初に転置され、列区切り記号として使用されます
  2. 次に、単一の列に外観を変更します。

前任者。

$ rs -c~ -T < file | rs 0 1
1
toast
3
5
8
9
4
test
8

またはAwkを使用してください。

$ awk -F~ '
    {for (i=1;i<=NF;i++) a[i] = a[i] == "" ? $i : a[i] "\n" $i} 
    END {for (i in a) print a[i]}
  ' file
1
toast
3
5
8
9
4
test
8

おすすめ記事