Bash 检查行上的重复值
所以我正在制作一个脚本来检查数独是否正确。 任务是检查行和列中是否有重复的数字,现在对于列来说,使用带有sort和uniq的awk相当容易。但是检查行是另一回事。因为我不能使用sort之类的,请记住我的sed知识几乎什么都没有。 输入: 现在,在一些行上有重复的数字,我希望输出告诉我类似的东西Bash 检查行上的重复值,bash,shell,unix,awk,sed,Bash,Shell,Unix,Awk,Sed,所以我正在制作一个脚本来检查数独是否正确。 任务是检查行和列中是否有重复的数字,现在对于列来说,使用带有sort和uniq的awk相当容易。但是检查行是另一回事。因为我不能使用sort之类的,请记住我的sed知识几乎什么都没有。 输入: 现在,在一些行上有重复的数字,我希望输出告诉我类似的东西 line 1 : good line 2 : good line 3 : bad line 4 : good line 5 : good line 6 : good line 7 : bad line 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
假设您使用了
awk
来检查列,并且每列都只有1到9的数字,那么您也可以使用awk
进行检查,方法如下:
{ 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";
}
}
{删除arr;
okline=1;
对于(i=1;您是否使用文本文件作为输入?是的,文本文件作为参数您在此处查看了吗:?另请查看
{ 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";
}
}