linux shell 两个文件内容做加减法

linux shell 两个文件内容做加减法,第1张

awk '{getline s <"第一个文件"

split(s,array)

for (i=1i<=NFi++) $i=$i-array[5+i]

print }' 第二个文件

结果

9761 98.895 10 1 98.896

#!/bin/bash

n=1

for i in `cat 1.txt`do # 循环1.txt

num=`sed -n "${n}p" 2.txt` # 获取2.txt对行的数字

sum=$(($num + $i)) # 两数相加

echo $sum # 打印结果

n=$(($n + 1))

done

我感觉你这个要求太特殊了。因为据我所知linux中的关于文件比较的命令没有提供给你这么多功能。

你可以这么一步步的来。

写一个shell脚本

假设两个文件1.txt 2.txt

第一条命令

$diff -urN 1.txt 2.txt >diff.patch

生成出来的diff.patch就是两个文件中不同的记录。

你如果需要加上你后面的“希望比较除了这行的其他内容......”等等要求的话,用其它要求做处理就行了。

附带,你可以先grep出带@的行,计算出在哪儿改的,改了哪几个字符

至于空格和制表符,我想sed就能完成了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8585779.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存