batch-file - 是否有相当于 Linux 的“sdiff -s”命令的批处理?
问题描述
我正在上的计算机科学课使用 bash 脚本对我们的作业进行评分。然而,由于许多学生使用 Windows,我正在尝试编写一个等效的批处理文件,他们可以在他们的设备上运行来为他们的实验室评分。
bash 脚本的一个非常重要的部分是“sdiff -s key_$f out_$f >> details.txt”
它比较密钥文件和输出文件,并在详细信息文件中打印差异。
我以前没有使用过 bash,自从我使用批处理文件以来已经有一段时间了,所以我很迷茫。
bash 脚本:
echo ""
echo "Running Diff"
echo "--------"
rm turnin.txt
rm details.txt
for f in file*.txt;
do
f=${f#tests/}
cat out_$f >> turnin.txt
echo "out_$f">> details.txt
sdiff -s key_$f out_$f >> details.txt
if [ ${PIPESTATUS[0]} -eq 0 ];
then
echo "key_$f and out_$f are identical"
else
echo "key_$f and out_$f differ :: check details.txt for details"
fi
done
echo "--------"
文件相同时的 details.txt 示例:
out_file1.txt
out_file2.txt
out_file3.txt
out_file4.txt
out_file5.txt
当文件的某些行不同时的 details.txt 示例:
out_file1.txt
isBalanced { ( [ ] } ) False | isBalanced { ( [ ] } ) True
isBalanced { { ( ) [ { } ] ( [ ] ) } } True | isBalanced { { ( ) [ { } ] ( [ ] ) } } False
out_file2.txt
out_file3.txt
out_file4.txt
40 2 4 + 2 2 + - * 4 5 / 6 / - | 402 4 + 2 2 + - * 4 5 / 6 / -
48 36 7 % + 2 - | 48 36 7 2 -
out_file5.txt
任何建议表示赞赏!
解决方案
推荐阅读
- bash - 跑步后如何停下来?
- input - 电视信号源/输入/HDMI 更改时的 tvOS 通知
- android-linearlayout - 在布局中将文本彼此对齐
- html - 表单不重定向到进程文件。PHP
- php - 你能在 PHP 中为 Twig 视图生成文档吗?
- java - 如何使用java删除我的mysql数据库的最新行
- ios - 视频导出失败显示错误 AVAssetExportSessionStatusFailed
- swift - 使用 IBDesignable 以编程方式从 Assets 访问 NSImage
- mongodb - MongoDB如何根据多个日期获取文档
- c++ - 我可以使用函数指针调用虚拟析构函数吗?