Bash 检查行上的重复值

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

所以我正在制作一个脚本来检查数独是否正确。 任务是检查行和列中是否有重复的数字,现在对于列来说,使用带有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 : 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";
  }
}