王廷瑋|數位醫療|智慧醫療: 194. Transpose File WFU

2024年7月11日 星期四

194. Transpose File

194. Transpose File


給定一個文本文件 file.txt,轉置其內容。

你可以假設每行具有相同數量的列,每個字段由空格字符分隔。

範例:

如果 file.txt 包含以下內容:

name age 
alice 21 
ryan 30

則輸出如下:
name alice ryan 
age 21 30

#!/bin/bash

# Read from the file file.txt and print its transposed content to stdout
awk '
{
for (i = 1; i <= NF; i++) {
if (NR == 1) {
transpose[i] = $i;
} else {
transpose[i] = transpose[i] " " $i;
}
}
}
END {
for (i = 1; i <= length(transpose); i++) {
print transpose[i];
}
}
' file.txt

3.93MB, 60ms