警告,不是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
然而,这会打印前一个文件下面的每个文件的信息。我希望信息并排,就像矩阵一样。我查找了粘贴,但它似乎在awk之前被调用,并且所有示例都只有几个文件。我试过它仍然代替打印,但没有用。
如果有人能帮助我,这将是我项目的最后一块。非常感谢!
答案 0 :(得分:0)
你可以尝试:
awk -f ext.awk file.txt *.asc > data.txt
其中ext.awk
是
NR==FNR {
A[$1]++
next
}
FNR==1 {
if (ARGIND > 2)
print ""
}
$1 in A {
printf "%s ", $2
}
END {
print ""
}
如果您没有Gnu Awk,则ARGIND变量不可用。然后你可以尝试
NR==FNR {
A[$1]++
next
}
FNR==1 {
if (++ai > 1)
print ""
}
$1 in A {
printf "%s ", $2
}
END {
print ""
}