列を1つに結合(スタック)

列を1つに結合(スタック)

各列が列内で互いに「重なるように」フォーマットを再指定するデータ列が複数あります。

入力例:

1  2  3  4
1  2  3  4

希望の出力:(「1」と「3」が欠落している古いスペルエラーを修正しました。)

1
1
2
2
3
3
4
4

(時々列の間にスペースを追加したい場合もあります)

編集する: 「間の空間」の説明は不明です。たまには、積み重ねられた列の間に空の行が欲しい時があります。以下のEd Mortonの回答を適用すると、次のように達成できます。

awk '
{for (i=1; i<=NF; i++) a[i]=a[i] $i ORS}
END {for (i=1; i<=NF; i++) printf "%s", a[i](i==NF?"":"\n")}
' file

ベストアンサー1

datamashデータを置き換えてからスペースを改行文字に変換するために使用されますtr-s複数のスペースを1つに圧縮している間)。

datamash -t' ' transpose <infile | tr -s ' ' '\n'

おすすめ記事