根据第一行删除文件中的行

Delete lines in a file based on first row

我尝试处理整个系列的 txt 文件(实际上是 .out,但其行为类似于 space 分隔的 txt 文件)。根据与第一行相比的输出,我想删除文本中的某些行。

例如:

ID VAR1 VAR2
1 8 9
2 4 1
3 3 2

我想删除 VAR1 < 0,5 的所有行。

我在 excel 中找到了一种手动执行此操作的方法,但是对于 350 多个文件,这将是一个漫长的夜晚,肯定有一些方法可以更有效地执行此操作。我正在研究这个终端中已有一组文件 (OSX)。

这是 awk 的典型工作,这种古老的文件操作语言。

awk 所做的是将文件中的每一行与条件匹配,并为其提供操作。它还允许简单地对行列进行基本解析。在这种情况下,您想要测试第二列是否小于 0.5,如果小于则不打印该行。否则,打印该行(实际上这会删除变量小于 0.5 的行。

您的变量在第 2 列中,在 awk 中称为 $2。每个完整行都由变量 $0.

引用

所以你会这样做:

{    if ( < 0.5) {
     }
     else {
     print [=10=]
     }
}

之类的,好久没用awk了。上面的代码是一个 awk 脚本。将它应用于您的文件,并将输出重定向到一个新文件(它将删除所有不满足条件的行)。