使用shell完成矩陣轉換:
file.txt中的內容爲以下:
name age
alice 21
ryan 30
轉化後:
name alice ryan
age 21 30
awk '{ #這個大括號裏的代碼是 對正文的處理
# NF表示列數,NR表示已讀的行數
# 注意for中的i從1開始,i前沒有類型
for (i=1; i<=NF; i++){#對每一列
if(NR==1){ #如果是第一行
#將第i列的值存入res[i],$i表示第i列的值,i爲數組的下標,以列序號爲下標,
#數組不用定義可以直接使用
res[i]=$i;
}
else{
#不是第一行時,將該行對應i列的值拼接到res[i]
res[i]=res[i] " " $i
}
}
}
# BEGIN{} 文件進行掃描前要執行的操作;END{} 文件掃描結束後要執行的操作。
END{
#輸出數組
for (i=1; i<=NF; i++){
print res[i]
}
}' file.txt