2个文件内容的比较

文件内容比较shell 如:

a.txt

2111,12,222


b.txt

2121,12,222



shell代码

#!/bin/bash
touch result.txt;
echo '创建结果文件成功!';
echo '' > result.txt;
FILENAME1='/home/zzq/a.txt';
#拿到文件的行数
FILECOUNT1=`awk 'END{print NR}' $FILENAME1`
#echo $FILECOUNT1;
FILENAME2='/home/zzq/b.txt'
FILECOUNT2=`awk 'END{print NR}' $FILENAME2`
#遍历行数
for((i=1;i<=FILECOUNT1;i++))
do
#echo $i
#用sed命令读取每行
readLine=`sed -n "${i}p" $FILENAME1`
readLine2=`sed -n "${i}p" $FILENAME2`
#echo $readLine > cache1.txt;
#echo $readLine2 > cache2.txt;
#echo $readLine


#将行用,逗号分割为数组
OLD_IFS="$IFS" 
IFS="," 
arr=($readLine) 
IFS="$OLD_IFS" 
for s in ${arr[@]} 
do 
   echo "$s" 
done


#echo -----+ ${arr[2]};

OLD_IFS="$IFS"
IFS=","
arr2=($readLine2)
IFS="$OLD_IFS"
for s in ${arr2[@]}
do
    echo "$s" 
done

#echo -----+ ${arr2[1]}
lengthVal=${#arr[@]}
echo 数组长度 $lengthVal;
#遍历数组比较字符串
for ((num=0;num<lengthVal;num++))
do
   # echo  ${arr[${num}]} 
    if [ "${arr[${num}]}" != "${arr2[${num}]}" ];then
	resultText="${arr[${num}]} 不相等在$FILENAME1的第$i行第$(($num+1))列"
	echo $resultText;#输出结果
	echo $resultText >> result.txt;
    fi


done



#sleep 1s
done



posted on   愤怒的苹果ext  阅读(22)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示