我正在比较两个文件
food1.txt文件并比较food2.txt文件,如下所示
第一个
- 我的工作。
FOOD1=`cat ./food1.txt`
FOOD2=`cat ./food2.txt`
echo "$FOOD1" | while read ACCOUNT
do
grep -w $ACCOUNT ./food2.txt >/dev/null 2>&1
if [ $? -eq 0 ] ; then
echo "-----[ OK ] : $ACCOUNT"
else
echo "-----[ WARN ] : $ACCOUNT"
fi
done
- 输出..但我不喜欢它
-----[ WARN ] : pizza=1ea
-----[ OK ] : chicken=5ea
-----[ OK ] : tooboo=4ea
-----[ WARN ] : orange=2ea
我想一起打印比较目标
- 我想要输出,像这样
food2.txt food1.txt
pizza=2ea : [ NotMatch ] : pizza=1ea
: [ OK ] : chicken=5ea
: [ OK ] : tooboo=4ea
: [ NotExist ] : orange=2ea
grape=3ea : [ NotExist ] :
melon=1ea : [ NotExist ] :
这可能吗?请帮帮我。
2条答案
按热度按时间ovfsdjhp1#
使用您展示的示例,请尝试以下
awk
程序。用GNUawk
编写和测试。对于您所示的样品,***输出***如下:
***说明:***添加上述代码的详细说明。
cbjzeqam2#
由于
bash
被标记,这里有一个使用关联数组的解决方案。第一个while
循环阅读第一个文件填充数组。第二个while
循环迭代第二个文件,检查键和/或值是否与数组中的条目匹配,并删除它们。最后,for
循环迭代数组中剩余的“未检查”条目。第一个