linux - 将文本文件转换为列

标签 linux unix awk

假设我有科学数据,所有数字都排列在一列中,但代表 n(宽度)乘 m(高度)的强度矩阵。输入文件的列共有 n * m 行。输入示例可能如下所示:

1  
2  
3  
......  
30 

新的输出应该是这样的,我有 n 个新列和 m 行。坚持我的示例,输入 30 个字段并且 n = 3,m = 10,我需要一个这样的输出文件(分隔符无关紧要,可以是空白, 标签等):

1   11  21  
2   12  22  
... ... ...
10  20  30 

我在 Windows 下使用 gawk。请注意,没有特殊的 FS,更多真实世界的例子是 60 * 60 或更大。

最佳答案

如果您不仅限于 awk,还拥有 GNU core-utils (cygwin, native, ..) 那么最简单的解决方案是使用 pr:

pr -ts" " --columns 3 file

关于linux - 将文本文件转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15687670/

相关文章:

linux - 如何将远程 tarball 提取到本地机器上

linux - 将最新的文件名放入比特定时间早的变量中

c - 如何重写特定的文件 block

linux - 如何剪切文件中包含三位数字的单词 (100) - shell 脚本

python - 让 AWK 命令在 Python 脚本中工作

linux - 将除五个最新文件之外的所有文件移至新目录

linux - 将 netcat 与 bash 上的聊天结合起来以实现自动 udp 响应

linux - 使用 awk 提取文本

python - 使用 Bash 编辑 YAML 文件

linux - 如何在Windows上生成Linux的可执行文件?