-1

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

文件 1

1.1 
2.89
Nan
4.32

文件2

2.1
2.1
42.6
1.1

File3(结果文件)

3.2
4.99
5.42
4

2 回答 2

2

利用:

paste -d+ file1 file2 | bc 2>/dev/null >file3
于 2012-11-22T14:49:43.930 回答
0

我会使用awkpaste作为:

paste file1 file2 | awk '/^([0-9]+\.?|\.?)([0-9]*)*[ \t]+[0-9]+\.?([0-9]*)*$/ { print $1+$2 }' > File3
于 2012-11-22T14:49:23.930 回答