所以我正在创建一个脚本来检查数独是否正确。 任务是检查行和列中的重复数字,现在对于列,使用具有sort和uniq的awk可以非常轻松地完成作业。但要检查线条是另一回事。由于我不能使用排序等等,请记住我的sed知识几乎没有。 输入:
5 3 4 6 7 8 9 1 2
6 7 2 1 9 5 3 4 8
1 3 8 3 4 2 5 6 7
8 5 9 7 6 1 4 2 3
4 2 6 8 5 3 7 9 1
7 1 3 9 2 4 8 5 6
9 6 1 1 3 7 2 8 4
2 8 7 4 1 9 6 3 5
3 4 5 2 8 6 1 7 8
现在在某些行上有重复的数字,我希望输出能说出类似
的内容line 1 : good
line 2 : good
line 3 : bad
line 4 : good
line 5 : good
line 6 : good
line 7 : bad
line 8 : good
line 9 : bad
答案 0 :(得分:0)
假设您已使用awk
检查列,并且每列只有1到9的数字,您也可以使用awk
进行检查,如下所示:< / p>
{ delete arr;
okline = 1;
for (i = 1; i <= NF; ++i) {
if (arr[$i] == 1) {
okline = 0;
break;
}
arr[$i] = 1;
}
if (okline == 1)
{
print "Line: OK";
}
else
{
print "Line: error";
}
}
它不计算线条,但你可以理解。