我有我設法與周圍的工作來解決,所以我在這裏希望從學習問題,你更優雅的解決方案;-)從XYZ使用awk,以矩陣
我必須解析程序的輸出:它寫入三列的文件XYZ這樣
1 1 11
1 2 12
1 3 13
1 4 14
2 1 21
2 2 22
2 3 23
2 4 24
3 1 31
3 2 32
3 3 33
3 4 34
4 1 41
4 2 42
4 3 43
4 4 44
在矩陣這樣
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44
我喜歡這個
兩線bash腳本解決dim_matrix=$(awk 'END{print sqrt(NR)}' file_xyz) #since I know that the matrix has to be squared and there are no blank lines in the file_xyz
awk '{printf("%s%s",$3, !(NR%'${dim_matrix}'==0) ? OFS :ORS) }' file_xyz
你能給我推薦一種只用awk執行相同的方法嗎?
非常感謝您!這真的幫助了我! – Mareczek
可能我發現了一個較短的腳本... AWK' {ARR [C++] = $ 3} END { 大小= SQRT(NR) 爲(C = 0;ç
Mareczek
關於awk的關鍵是腳本的佈局:'condition {body} condition {body}。只有當給定的條件爲真時,身體纔會執行。空白狀態意味着每一行都會執行正文。一個空白體隱含地是'{print $ 0}'。 –