Bash shell 脚本检查器

2024-03-24

我必须编写一个脚本,它获取一个文本文件,其中包含 9 行和行中的 9 个数字(1-9)。 例如:

123456789

234567891

345678912

456789123

567891234

678912345

789123456

891234567

912345678

我必须根据数独规则检查行和行。 一行或一行中不能有相同的数字。 所以这个例子是一个正确的解决方案。

如何在bash shell脚本中编写它? 我无法使用数组,那么我该怎么办?


一个没有 awk 的解决方案,结合了不同的其他工具。
编辑:此解决方案适用于称为输入的输入文件和数字之间的空格。请参阅有关更改此行为的评论。

echo "Checking 9 lines"
if [ $(wc -l <input ) -ne 9 ]; then
        echo "Wrong number of lines"
        exit 1
fi
echo "Check for correct layout"
if [ $(grep -cv '^[1-9] [1-9] [1-9] [1-9] [1-9] [1-9] [1-9] [1-9] [1-9]$' input ) -ne 0 ]; then
   echo "Not all lines are correct, maybe spaces at the end of a line?"
   grep -v '^[1-9] [1-9] [1-9] [1-9] [1-9] [1-9] [1-9] [1-9] [1-9]$' input
   exit 1
fi
i=0
while read -r line; do
   ((i++))
   if [ $(echo "${line}" | tr " " "\n" | sort -u | wc -l ) -ne 9 ]; then
      echo "Wrong nr of unique numbers in row $i"
   fi
done <input
for j in {1..9}; do
   if [ $(cut -d" " -f${j} input | sort -u | wc -l ) -ne 9 ]; then
      echo "Wrong nr of unique numbers in column $j"
   fi
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bash shell 脚本检查器 的相关文章

  • 使用 shell 脚本在 docker 容器内运行脚本

    我正在尝试创建一个 shell 脚本来设置 docker 容器 我的脚本文件如下所示 bin bash docker run t i p 5902 5902 name mycontainer privileged myImage new b
  • Openshift 上的自定义 Node.js 版本

    我在运行自定义节点版本时遇到问题node0 10您可以在开放班次中找到墨盒here https github com DavidReinberger openshift meteor leaderboard customNode 我可以很好
  • 如何从 C 文件更改终端中的目录

    如何从 C 程序更改将在终端上生效的目录 实际上不要告诉 system 函数或 chdir 函数 这些仅适用于 C 中的进程或子 shell 假设我正在从 bash shell 执行一个 C 程序 其进程 ID 为 10223 那么 我可以
  • 如何摆脱每个新终端会话上运行的某些内容?

    我正在使用狮子 我在每个新的终端会话上都会输出一个错误 bash rvm add to path command not found 这是一个几乎全新的用户帐户 RVM 安装在计算机上的另一个帐户上 bashrc 和 bash profil
  • JS:按每个类别的最大值过滤对象数组

    什么是最有效 优雅的方式来实现类似sql的过滤效果 我想过滤它们并只获取某个组中最大值的对象 这是我的代码 它可以工作 但可能不是最好的方法 uniqueValues arr gt new Set arr getMaxTimeOf arr
  • python 和回文

    我最近写了一个循环的方法 usr share dict words并使用我的返回回文列表ispalindrome x 方法 这是一些代码 有什么问题吗 它只会停止 10 分钟 然后返回文件中所有单词的列表 def reverse a ret
  • subprocess.Popen args 参数的最大长度是多少?

    我在用Popen http docs python org library subprocess html using the subprocess modulesubprocess 模块中的函数来执行命令行工具 subprocess Po
  • 查找数组中总和等于给定值的最小元素

    我试图找出数组中总和等于的最小元素 给定的输入 我尝试了几个输入总和 但只能找到一个 在第一种情况下配对 而我需要实现的不仅仅是一对 var arr 10 0 1 20 25 30 var sum 45 var newArr console
  • 如何在 Fortran 90 中迭代包含数字、单词和空格的字符串?

    文件说明 STL文件由以下部分组成 solid
  • -bash: gulp: 在 Mac 中找不到命令

    我尝试在 mac 中安装 gulp 如下所示 Is iMac itop npm root Users itop node modules Is iMac itop npm config set prefix usr local Is iMa
  • 添加到数组连续数字

    这是我向SO提出的第一个问题 我希望能答对 在 PHP 中 如果你不会 Python 或伪语言也可以 给定一个包含 n 个元素的数组 old array 1 2 3 5 7 8 9 20 21 23 29 我需要向新数组添加连续数字 如果不
  • 整数的十进制表示形式中的分隔数字

    例如 我想将用户输入作为整数输入 45697 并将前两位数字存储在数组 向量或其他内容中 例如 4 5 6 9 7 这样我就可以使用一些函数调用来检查前两个值 4 5 并对它们进行计算 问题 我不知道如何存储恢复前两个值 有没有简单的函数调
  • 如何“grep”连续流?

    可以用吗grep在连续的流中 我的意思是有点tail f
  • 使用 memcpy 复制二维数组?

    所以我想将二维数组的内容复制到另一个完全相同类型的数组 以下是数组的创建方式 GridUnit newGrid newGrid new GridUnit width for int i 0 i lt width i newGrid i ne
  • 如何在 Angular JS 中显示以字节数组形式接收的图像

    我有一个将返回图像的服务器端应用程序 这些是响应标头 Content Disposition attachment filename 8822a009 944e 43f4 999b d297198d302a 1 0 low res Cont
  • 参考当前命令的先前参数

    例如 我想执行以下操作 mv xxxx xxxx bak 我知道我可以使用这个命令 mv xxxx bak 我认为这在某种程度上并不直接 如果我能做到这一点那就太好了 mv xxxx 1 bak 有时我需要这样 echo xxxx yyyy
  • 如何判断变量是否是数组

    我有一个接受 Any 的 Swift 函数 我希望它能够接受字符串数组 整数数组 混合数组或数组数组等 它也可以只接受字符串或整数 等等 不在数组中 所以我有这个 private func parse parameter Any if pa
  • 在 Ruby 中从一个数组减去另一个数组

    我有两个任务数组 创建和分配 我想从创建的任务数组中删除所有分配的任务 这是我的工作代码 但很混乱 assigned tasks user assigned tasks created tasks user created tasks Do
  • 循环遍历多维数组

    我有一个与此类似的 JSON 文件 Pages Name Home Page index php admin Name Admin Page admin index php Template admin MobileTemplate adm
  • 按行号和列号对文件进行子集化

    我们想要按行和列对文本文件进行子集化 其中行数和列数是从文件中读取的 不包括标题 第 1 行 和行名称 第 1 列 输入文件 txt制表符分隔的文本文件 header 62 9 3 54 6 1 25 1 2 3 4 5 6 96 1 1

随机推荐

  • 添加性能计数器类别使计算机挂起

    我正在尝试从 ASP NET MVC 应用程序 在 Windows 8 x64 PC 上使用 VS 2012 添加性能计数器 但我遇到的问题是 如果我检查类别是否存在或添加新的性能计数器类别 计算机就会挂起 我的代码是 namespace
  • 模糊边缘检测

    我对图像处理和识别的背景知识很少 我正在尝试检测灰度图像 例如肖像 上的主要边缘 灰度过渡 问题是在某些部分 边缘模糊 因为焦点 我使用具有多个阈值的 Canny 边缘检测器 但我永远无法检测到这些边缘 下巴 衣服 耳朵 脸的侧面 Orig
  • 如何在Python中使用正则表达式替换字符串中的多个单词?

    我有一本字典 比如 dic xl xlarg l larg m medium 我想使用 re sub 或类似的方法查找 dic keys 中的任何字符串 包括单个字母 并将其替换为键的值 def multiple replace dict
  • 如何使用经过训练的 Tensorflow 模型进行预测

    我已经创建并训练了一个神经网络 但我希望能够输入测试点并查看其结果 而不是使用评估函数 该模型运行良好 并且成本减少了每个时期 但我只想在末尾添加一行来传递一些输入坐标 并让它告诉我预测的转换坐标 import tensorflow as
  • 跳过在 git push/pull 命令中输入用户名和密码

    任何人都知道如何设置它 所以当我在命令行中以及当我push pull到 从 git 存储库我不需要输入我的用户名和密码 Thanks 当你使用http https作为您的传输协议 您将被要求提供username password每次 切换到
  • 等待元素变得陈旧,为什么“ExpectedConditions.stalenessOf”不起作用?

    我创建了以下方法 public void waitAndClickElement WebElement element throws InterruptedException try Boolean elementPresent this
  • bigint 表示的最大值

    有没有办法获得可以存储在 bigint 中的最大值 而不需要对其进行硬编码 是否有函数或常量返回 包含该值 bigint 总是会支持 2 63 9 223 372 036 854 775 808 to 2 63 1 9 223 372 03
  • 警告:带有约束的张量流已被弃用,并将在未来版本中删除

    我正在按照 Tensorflow 的关于构建简单神经网络的教程进行操作 在导入必要的库 tensorflow keras numpy 和 matplotlib 和数据集 fashion mnist 后 我按照教程运行了此代码 model k
  • 如何从 Pandas GroupBy 对象中获取分组列的名称?

    假设我有以下数据框 df pd DataFrame dict Foo A A B B Bar 1 2 3 4 i e Bar Foo 0 1 A 1 2 A 2 3 B 3 4 B 然后我创建一个 pandas GroupBy 对象 g d
  • 如何(如果有的话)在 Trigger.io 中禁用设备睡眠?

    我正在尝试决定是否应该为我即将构建的移动应用程序选择 PhoneGap 还是 Trigger io 必备功能 之一是禁用显示器睡眠的能力 我见过各种针对 PhoneGap 的黑客攻击 idleTimerDisabled 甚至还有一个插件可以
  • 在Python中创建一个具有一定大小的空列表

    如何创建一个可以容纳 10 个元素的空列表 之后 我想在该列表中分配值 例如 xs list for i in range 0 9 xs i i 然而 这给出了IndexError list assignment index out of
  • 块而不是performSelector:withObject:afterDelay:[重复]

    这个问题在这里已经有答案了 我经常想在未来几微秒内执行一些代码 现在 我这样解决 void someMethod some code 和这个 self performSelector selector someMethod withObje
  • 如何在bash中的变量中转义通配符扩展?

    如何转义变量名中的通配符扩展 CP lib COMMAND java VARIABLES cp CP SomeClass echo COMMAND 回显该命令始终会导致通配符扩展 echo COMMAND 使用引号可以防止 glob 被扩展
  • 当应用程序以不同用户身份运行时,如何获取当前登录的用户名和帐户类型(admin、nonadmin)

    In C 如果应用程序由不同用户执行 如何获取当前登录的 Windows 用户Run as WindowsIdentity GetCurrent 总是给出Run as用户或模拟用户 我只想要Windows登录的用户名和用户帐户类型 据我所知
  • 从浏览器运行 Python 应用程序

    我对编程还很陌生 我一直在业余时间学习Python 作为对自己的挑战 我为课堂项目创建了一个简单的文本冒险 这不是一个编程课程 因此教授不知道如何编译原始 Python 脚本 更不用说在他们的 Mac 上安装 Python 解释器了 话虽这
  • Azure 云部署失败:找不到带指纹的证书

    我正在开发一个基于 Web API 的 Web 服务 托管在 Azure 上 我正在使用 Azure 1 8 SDK 当我尝试部署云服务时 上传需要很长时间 然后我收到一条错误消息 其中显示 12 09 52 PM Error The ce
  • 在 MS SQL (mssql) 中查找阻塞/锁定查询

    Using sys dm os wait stats我已经确定了我认为的锁定问题 wait type waittime pct running ptc LCK M RS S 2238 54 22 14 22 14 LCK M S 1980
  • 浮点的 == 和 != 全局重载

    重载全局运算符是一种不好的做法吗 and 对于浮点 我在游戏环境中使用快速浮点 并且我正在考虑在任何地方使用模糊比较 因为我无法想象我不希望非常接近的数字不相等的情况 有什么建议吗 你不能 C 运算符重载必须至少涉及一种用户定义的类型 即使
  • 更改重复键阈值 C++

    我正在构建一个 C 俄罗斯方块游戏 不是 C Net 我感觉我的控制很奇怪 我想要做到这一点 以便当用户按下其中一个箭头键时 按住它大约 10 毫秒将启动 Windows 的重复功能 默认设置为 500 毫秒左右 对于我的游戏来说太延迟了
  • Bash shell 脚本检查器

    我必须编写一个脚本 它获取一个文本文件 其中包含 9 行和行中的 9 个数字 1 9 例如 123456789 234567891 345678912 456789123 567891234 678912345 789123456 8912