【发布时间】:2015-08-07 15:33:10
【问题描述】:
我有 30 个文件,分别称为 UE1.dat、UE2.dat ....,每个文件都有 4 列。下面给出了 UE1.dat 和 UE2.dat 的列结构示例。
UE1.dat
1 4 2 1
2 2 3 3
3 2 4 4
4 4 4 2
UE2.dat
2 6 8 7
4 4 9 6
7 1 1 2
9 3 3 3
所以,我尝试了以下代码:
for((i=1;i<=30;i++)); do awk 'NR$i {printf $1",";next} 1; END {print ""}' UE$i.dat; done > UE_all.dat
要从每个文件中只获取第一列并将它们写入单个文件和列并排,所需的输出如下所示。
1 2
2 4
3 7
4 9
但不幸的是,代码将它们按行排列,您能给个提示吗?
提前谢谢你!
【问题讨论】:
-
随着您的输出 - 您每次都在第一列之后吗?它应该如何查找其他文件 - 30 列宽,全部来自每个文件的“第 1 列”?它必须是
awk吗? -
不,没有必要是 awk,但我在那种情况下使用了它。我刚刚编辑了这个问题,所以你可以在那里检查所需的输出。谢谢!
标签: awk multiple-columns