有没有办法将文件的所有列(空格分隔)转换为行?

Vic*_*cky 0 unix shell awk sed

我有一个包含数据的文件

180607 093423   123.12.23.122 133
180607 121234   125.25.45.221 153
190607 084849   202.178.23.4 44
190607 084859   164.78.22.64 12
200607 012312   202.188.3.2 13
210607 084849   202.178.23.4 34
210607 121435   202.178.23.4 32
210607 132423   202.188.3.2 167
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

180607 180607 190607 190607 200607 210607 210607 210607 
093423 121234 084849  084859 012312 084849  121435 132423
123.12.23.122 125.25.45.221 202.178.23.4 164.78.22.64  202.188.3.2 202.178.23.4 202.178.23.4 202.188.3.2
133 153 44 12 13 34 32 167
Run Code Online (Sandbox Code Playgroud)

请建议

Jam*_*own 5

在awk中,顺序应该与预期输出相反,反转(编辑:OP在此解决方案后将反转数据集恢复正常.我将其保留为教育目的.):

$ awk '{ for((nf=NF)&&i=1;i<=NF;i++)  # every field of every record
             a[i]=$i OFS a[i] }       # prepend new data to previous data in a
       END {                          # in the end
             for(i=1;i<=nf;i++)       # 
                 print a[i] }' file   # output data
180607 180607 190607 190607 200607 210607 210607 210607 
093423 121234 084849 084859 012312 084849 121435 132423 
123.12.23.122 125.25.45.221 202.178.23.4 164.78.22.64 202.188.3.2 202.178.23.4 202.178.23.4 202.188.3.2 
133 153 44 12 13 34 32 167 
Run Code Online (Sandbox Code Playgroud)

如果订单不应该反转但只需要转置,请更改a[i]=$i OFS a[i]a[i]=a[i] $i OFS(未经测试).