【发布时间】:2014-06-04 13:01:53
【问题描述】:
我有多个 (1086) 文件 (.dat),在每个文件中我有 5 列和 6384 行。 我有一个名为“info.txt”的文件,其中包含 2 列和 6883 行。第一列给出行号(在 .dat 文件中删除),第二列给出一个数字。
1 600
2 100
3 210
4 1200
等等... 我需要阅读 info.txt,在第二列中找到与小于 300 的值对应的每一行号(因此在上面的示例中为 2 和 3)。然后我需要将这些值读入 sed-awk 或 grep 并从每个 .dat 文件中删除这些 #lines。 (所以我会在上面的例子中删除每2行和3行dat文件)。
问题的更一般形式是(我想): 如何从文件中读取数字作为输入,而不是将它们分配给要从多个文件中删除的行。
我正在使用 bash,但 ksh 帮助也很好。
【问题讨论】:
-
请提供一个更简单的示例,显示输入文件和您想要的输出。
-
在您的示例中,只有第一行在第二列中的值大于 300,所以在我看来,您只会从数据文件中删除第 1 行,而不是第 2 行和3.
-
对不起,应该是小于 300 的值。
-
你能编辑它并清理它吗?此外,在您的第二句话中,您说“2 行和 6883 行”。我假设您实际上是指“2 列和 6883 行”。