0

我正在尝试将当前正在手动处理的数据转换为更简单的格式,但我不是程序员,所以我真的可以使用一些帮助。我们的制表符分隔的 .txt 数据文件如下所示:

Date                :       
Time                :            
Sample name         :       
Temperature         :       
                    :  
-4000     4.882813E-03    4.882813E-03   
-3000     4.882813E-03    4.882813E-03   
-2000     0   0  
-1000    -.1367188    .1367188   
0    -3.554688    3.457031   
1000     -3.632813    3.491211   
2000     -3.657227    3.496094   
3000     -3.686523    3.491211   
4000     -3.710938    3.496094   
5000     -3.735352    3.496094   
6000     -3.754883    3.491211   
7000     -3.774414    3.496094   
8000     -3.793945    3.496094  

直到A列达到0的文本和所有数据都不重要,应该被删除。一旦 A 列达到 0,脚本应该开始扫描 C 列,一旦 C 列更改 5%,它应该剪切或复制 B 列的下 100 个数据点并将其放入 D 列,在下一次更改与这些点匹配的数据时应放置在 E 列等中,直到到达文件末尾。

用更简单的数字:

0   1   2
1000    1   2
2000    1   2
3000    1   2
4000    1   2
5000    1   2
6000    1   2
7000    1   2
8000    0   3
9000    0   3
10000   0   3
11000   0   3
12000   0   3

应转化为:

0000    1   2   0
1000    1   2   0
2000    1   2   0
3000    1   2   0
4000    1   2   0
5000    1   2
6000    1   2
7000    1   2

我有点不知所措,因为除了几年前的一点 perl 外,我不知道任何编程语言,有人可以给我一些关于如何做到这一点的提示,因为现在我可以读取我的文本文件并在Padre 的终端窗口,但我无法处理数据

预先感谢您提供任何提示技巧和帮助,也欢迎其他非编程解决方案,因为现在我和我的同事正在考虑对成千上万的这些更改进行这种手动操作

4

1 回答 1

1

如何使用 Perl 将一行数字分成列

使用split运算符

my $row = '0    -3.554688    3.457031   ';
my @row = split ' ', $row;
say for @row;

输出

0
-3.554688
3.457031
于 2017-01-25T17:33:01.397 回答