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



需要读取两个文件,每个文件都有一列十进制数字,并逐行将它们添加到第三个文件中。这我可以用 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

我会使用 awkpaste 作为:

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

相关内容

  • 没有找到相关文章

最新更新