回答
用你的號碼替換下面的腳本中的5。
seq 20|xargs -n5| awk '{for (i=1;i<=NF;i++) a[i,NR]=$i; }END{
for(i=1;i<=NF;i++) {for(j=1;j<=NR;j++)printf a[i,j]" "; print "" }}'
輸出:
1 6 11 16
2 7 12 17
3 8 13 18
4 9 14 19
5 10 15 20
音符seq 20
上面有隻是用於生成用於測試的數字序列。你真正的工作並不需要它。
EDIT
通過sudo_O指出的,我添加純AWK溶液:
awk -vn=5 '{a[NR]=$0}END{ x=1; while (x<=n){ for(i=x;i<=length(a);i+=n) printf a[i]" "; print ""; x++; } }' file
測試
kent$ seq 20| awk -vn=5 '{a[NR]=$0}END{ x=1; while (x<=n){ for(i=x;i<=length(a);i+=n) printf a[i]" "; print ""; x++; } }'
1 6 11 16
2 7 12 17
3 8 13 18
4 9 14 19
5 10 15 20
kent$ seq 12| awk -vn=5 '{a[NR]=$0}END{ x=1; while (x<=n){ for(i=x;i<=length(a);i+=n) printf a[i]" "; print ""; x++; } }'
1 6 11
2 7 12
3 8
4 9
5 10
使用鮮爲人知寶石pr
:
$ seq 20 | pr -ts' ' --column 4
1 6 11 16
2 7 12 17
3 8 13 18
4 9 14 19
5 10 15 20
你能解釋一下這個命令是如何工作的 – user2134226
這只是一個寶石,如果它可以完成這項工作。例如,你應該用'seq 21'來測試它。如您所見,您需要進行一些後期處理才能獲得所需的輸出。否則,上面的命令將會失敗,不作任何修改。 – Steve
@ user19340357:我不相信它達到了預期的效果。無論如何,當研究命令的工作方式時,您應該首先查看該命令的手冊頁。在這種情況下,鍵入:[man pr](http://linux.die.net/man/1/pr)以查看'pr'的手冊頁。鑑於在這種情況下只有三個選項傳遞給'pr',是否有一個沒有很好記錄的特殊標誌,您需要更多解釋? – Steve
這裏是我如何與awk
做到這一點:
awk -v n=5 '{ c++ } c>n { c=1 } { a[c] = (a[c] ? a[c] FS : "") $0 } END { for (i=1;i<=n;i++) print a[i] }'
一些簡單的測試:
seq 21 | awk -v n=5 '{ c++ } c>n { c=1 } { a[c] = (a[c] ? a[c] FS : "") $0 } END { for (i=1;i<=n;i++) print a[i] | "column -t" }'
結果:
1 6 11 16 21
2 7 12 17
3 8 13 18
4 9 14 19
5 10 15 20
而另:
seq 40 | awk -v n=6 '{ c++ } c>n { c=1 } { a[c] = (a[c] ? a[c] FS : "") $0 } END { for (i=1;i<=n;i++) print a[i] | "column -t" }'
結果:
1 7 13 19 25 31 37
2 8 14 20 26 32 38
3 9 15 21 27 33 39
4 10 16 22 28 34 40
5 11 17 23 29 35
6 12 18 24 30 36
- 1. 把每X行的輸入到一個新列
- 2. 每行輸入和輸出一個字
- 3. shell每隔n行插入一行
- 4. 將任意輸入txt的每行放入一個單獨的變量
- 5. 打印最後一行-n行輸入
- 6. Bash:在一個新行中打印每個輸入字符串
- 7. UiTableview插入行每第n個結果
- 8. gnuplot的:繪製每輸入行一個系列的值
- 9. 我如何輸入n個輸入,其中n是python中的用戶輸入?
- 10. 用ajax更新每行的輸入
- 11. 獲取子串放入一個新列
- 12. AS3輸入文本框獲得用\ n換行的每條新行的文本
- 13. 對於每個測試用例,輸入一個整數n(0 <= n <= 10)
- 14. 輸出標準輸入的每第n個字節
- 15. 將char放入每個N個字符的java字符串中
- 16. 更新jtextarea的每個按鍵輸入
- 17. 將每一組N行加入一個bash中
- 18. 驗證空行輸入(\ n \ n)
- 19. 如何在Python中多次輸入,給出'n'和n個輸入行?
- 20. 列中每個輸入的輸出行Pentaho數據集成勺
- 21. 每n行返回一個列值
- 22. 算法每n-1天輸入n和輸出對
- 23. 宏每隔n行插入19行?
- 24. tflearn:每個輸入的行數不同
- 25. 爲標準輸入中輸入的每行輸出行號
- 26. 輸入,輸出和\ n的
- 27. MySQL讓每一個第N個Cloumn成爲一個新的行
- 28. 合併每3個輸入值,並把它們放在一個陣列中
- 29. VBA Excel:插入一個新列,每隔n列填充一個公式,其中立即向左列提供
- 30. Vue JS將焦點放在輸入的下一個輸入
作品,謝謝,接受。 – vektor
此如果輸入文件長度不5. –
@sudo_O THX的指點出來的多故障時,沒在這種情況下測試,現在純粹AWK單行加入。 – Kent