【发布时间】:2013-11-30 23:41:24
【问题描述】:
警告,不是 awk 程序员。
我有一个文件,我们称之为file.txt。它有一个数字列表,我将使用它从目录的其余部分(其中包含文件 *.asc)中查找我需要的信息。其余文件的长度不同,但由于我将根据 file.txt 绘制数据,因此我将构建的矩阵将具有相同的行数。然而,所有文件都包含相同数量的列,3。第一列将与 file.txt 进行比较,每个 *.asc 文件的第二列将用于构建矩阵。这是我目前所拥有的:
awk '
NR==FNR{
A[$1];
next}
$1 in A
{print $2 >> "data.txt";}' file.txt *.asc
但是,这会将每个文件的信息打印在前一个文件的下方。我想要并排的信息,就像一个矩阵。我查了 paste ,但它似乎在 awk 之前被调用,所有示例都只是几个文件。我尝试了它仍然代替打印,但没有工作。
如果有人可以帮助我,这将是我项目的最后一部分。非常感谢!
【问题讨论】:
-
您能否提供一个输入文件和所需输出矩阵的简短示例?
-
当您说某事物应该与其他事物“比较”时,重要的是说明比较是什么——等于、小于、字符串、数字等,所以我们不是在猜测。正如 Marcus 所说,发布一些示例输入和预期输出。
-
file.txt 的格式为: number number number 。 . .这些数字是双倍的。要比较的文件有三列双精度数。我想将 file.txt 中的数字与其他文件中的第一列进行比较。如果数字匹配打印第二个字段,如果不匹配,则打印 -1。这有帮助吗?