1

我有一个不错的 .awk 脚本,它采用第二个 $2 值并打印它。因为 .txt 文件中的数据只下降了 8192 行,因此之后的任何行都无关紧要(脚本会处理这一点。)我有 400 多个 .tst 文件需要完成相同的事情并将输出放入一个文件。那么我将如何浏览当前目录中的每个 .tst 文件?我尝试将 cat 输出通过管道传输到脚本的单行版本,但它只处理了第一个文件。有什么建议么?

BEGIN{
}
{
print $2 "\n";
if (NR==8192)
        exit;
}
END {
    print NR "\n";
}
4

2 回答 2

3

这应该工作 -

awk 'FNR<=8192{ print $2 }' *.tst > finalfile
于 2013-05-22T16:31:04.780 回答
1

只需 glob.tst当前目录中的所有文件并将输出重定向到outfile

$ awk 'FNR<=8192{print $2"\n";next}{print FNR"\n";nextfile}' *.tst > outfile
于 2013-05-22T15:54:22.323 回答