0

文件1:

456
445
2323

文件2:

433
456
323

我想得到两个文件中数据的亏缺并输出到output.txt,即:

23
-11
2000

我如何意识到这一点?谢谢你。

4

4 回答 4

4
$ paste file1 file2 | awk '{ print $1 - $2 }'
23
-11
2000
于 2012-04-26T22:54:34.857 回答
1

在纯 bash 中,没有外部工具:

while read -u 4 line1 && read -u 5 line2; do
  printf '%s\n' "$(( line1 - line2 ))"
done 4<file1 5<file2

这通过打开两个文件来工作(将它们附加到文件描述符 4 和 5);进入一个循环,每次迭代从每个描述符中读取一行(如果其中一个没有值,则退出循环),然后计算并打印结果。

于 2012-04-26T22:55:53.677 回答
1

使用 paste 创建公式,并使用 bc 执行计算:

paste -d - file1 file2 | bc
于 2012-04-27T01:50:20.707 回答
0

您可以使用 paste 和 awk 在列之间进行操作:

paste -d" " file1 file2 | awk -F" " '{print ($1-$2)}'

甚至管道到文件:

paste -d" " file1 file2 | awk -F" " '{print ($1-$2)}' > output.txt

希望能帮助到你!

于 2012-04-26T23:06:37.670 回答