添加带有十进制数的两个文件会丢弃具有非数字值的行

时间:2012-11-22 14:32:12

标签: bash

需要读取两个文件,每个文件都有一个带有十进制数字的列,并将它们逐行添加到第三个文件中。我可以用bash和bc做。 问题: 在某些情况下,这两个文件可能包含非数字值。当我遇到非数字值时,我需要知道它不是数字并跳过该行,即使一个文件具有有效数字,然后继续添加其余行。想在Bash本身做到这一点。 示例如下:

文件1

1.1 
2.89
Nan
4.32

file2的

2.1
2.1
42.6
1.1

File3(结果文件)

3.2
4.99
5.42

2 个答案:

答案 0 :(得分:2)

使用:

paste -d+ file1 file2 | bc 2>/dev/null >file3

答案 1 :(得分:0)

我会将awkpaste用作:

paste file1 file2 | awk '/^([0-9]+\.?|\.?)([0-9]*)*[ \t]+[0-9]+\.?([0-9]*)*$/ { print $1+$2 }' > File3