文件1:
456
445
2323
文件2:
433
456
323
我想得到两个文件中数据的亏缺并输出到output.txt,即:
23
-11
2000
我如何意识到这一点?谢谢你。
文件1:
456
445
2323
文件2:
433
456
323
我想得到两个文件中数据的亏缺并输出到output.txt,即:
23
-11
2000
我如何意识到这一点?谢谢你。
$ paste file1 file2 | awk '{ print $1 - $2 }'
23
-11
2000
在纯 bash 中,没有外部工具:
while read -u 4 line1 && read -u 5 line2; do
printf '%s\n' "$(( line1 - line2 ))"
done 4<file1 5<file2
这通过打开两个文件来工作(将它们附加到文件描述符 4 和 5);进入一个循环,每次迭代从每个描述符中读取一行(如果其中一个没有值,则退出循环),然后计算并打印结果。
使用 paste 创建公式,并使用 bc 执行计算:
paste -d - file1 file2 | bc
您可以使用 paste 和 awk 在列之间进行操作:
paste -d" " file1 file2 | awk -F" " '{print ($1-$2)}'
甚至管道到文件:
paste -d" " file1 file2 | awk -F" " '{print ($1-$2)}' > output.txt
希望能帮助到你!