在文件中搜索数据并使用该数据创建新的txt文件

时间:2016-09-12 21:29:02

标签: bash awk

我有一个txt文件,它是一台机器的输出,带有一堆写/数据/段落,不用于图形目的,但是在文件中间的某处我有我需要绘制的实际数据。我需要在文件中搜索数据,然后将数据打印到txt文件,以便稍后进行绘图。

文件中间的数据看起来像这样(每个数据文件可能有不同的行数/列数,而数字用空格分隔):

<>  1   2   3   4   5   6   etc.

A   1.2 1.3 1.4 etc.

B   0.2 0.3 0.4 etc.

C   2.2 2.3 2.4 etc.

etc.

到目前为止,我的想法是向&#39;&lt;&gt;&#39;找到第一行(grep&#39; ^&lt;&gt;&#39;文件),但我不确定在尝试查找它们时如何考虑可变数量的行/列。另外,我使用awk循环遍历目录中的所有.txt文件并打印到新的outfile,这样我就可以同时执行多个文件(所以也许我可以在awk中进行搜索/打印?)。

编辑:

- 输入/预期输出文件 -

输入文件

This is the data

Here are some paragraphs

<>  1   2   3  

A   1.2 1.3 1.4

B   0.2 0.3 0.4

C   2.2 2.3 2.4

more paragraphs

more paragraphs

输出文件:

<>  1   2   3  

A   1.2 1.3 1.4

B   0.2 0.3 0.4

C   2.2 2.3 2.4

使用awk对目录中的多个txt文件执行此操作。

1 个答案:

答案 0 :(得分:0)

这是awk中的一个。它在记录中查找<>或十进制数([0-9]+\.[0-9]+)。如果这还不够,也许您可​​以尝试扩展该十进制数测试部分以测试3个数字,例如:(/ [0-9]+\.[0-9]+){3}/

$ awk '/<>/||/[0-9]+\.[0-9]+/' foo
<>  1   2   3
A   1.2 1.3 1.4
B   0.2 0.3 0.4
C   2.2 2.3 2.4