需要读取两个文件,每个文件都有一列十进制数字,并逐行将它们添加到第三个文件中。这我可以用 bash 和 bc 来做。问题:在某些情况下,这两个文件可能包含非数字值。当我遇到非数字值时,我需要知道它不是一个数字,即使一个文件有一个有效的数字,也要跳过该行,然后继续添加其余的行。想在 Bash 本身做。示例如下:
文件1
1.1
2.89
Nan
4.32
文件2
2.1
2.1
42.6
1.1
文件3(结果文件)
3.2
4.99
5.42
使用:
paste -d+ file1 file2 | bc 2>/dev/null >file3
我会使用 awk
和 paste
作为:
paste file1 file2 | awk '/^([0-9]+.?|.?)([0-9]*)*[ t]+[0-9]+.?([0-9]*)*$/ { print $1+$2 }' > File3