다음과 같은 파일이 있습니다.
column1 column2 column3 column4 column5
5e-05 1e-05 0.00083 4e-05 0.00021
6e-05 3e-05 1.00083 2e-05 1.00021
이렇게 인쇄하고 출력하려면 다시 포맷해야 합니다.
column1 5e-05 6e-05
column2 1e-05 3e-05
column3 0.00083 1.00083
column4 4e-05 2e-05
column5 0.00021 1.00021
나는 사용하려고
tr ' ' '\n' |
pr -3t
그러나 지금까지 성공하지 못했습니다.
해결책을 찾았습니다.
awk '
{
for (i=1; i<=NF; i++) {
a[NR,i] = $i
}
}
NF>p { p = NF }
END {
for(j=1; j<=p; j++) {
str=a[1,j]
for(i=2; i<=NR; i++){
str=str" "a[i,j];
}
print str
}
}' file
그러나 출력은 다음과 같습니다.
column1 5e-05 5e-05
column2 1e-05 1e-05
column3 0.00083 0.00083
column4 4e-05 4e-05
column5 0.00021 0.00021
출력 숫자의 형식을 지정하고 싶습니다.
답변1
질문에 대한 두 가지 답변을 찾았습니다.
첫 번째는 @steeldriver가 제안한 것입니다.
tr -s ' ' '\n' < file | pr -3t
두 번째는 행렬 요소 전치에 대한 또 다른 토론에서 발견한 것입니다.
awk '
{
for (i=1; i<=NF; i++) {
a[NR,i] = $i
}
}
NF>p { p = NF }
END {
for(j=1; j<=p; j++) {
str=a[1,j]
for(i=2; i<=NR; i++){
str=str" "a[i,j];
}
print str
}
}' file