Bash 作业说明

Bash 作业说明,bash,awk,variable-assignment,pseudocode,Bash,Awk,Variable Assignment,Pseudocode,我不是在寻找这个问题的答案。我很难理解在这项任务中我应该努力完成什么。如果您愿意,我欢迎使用伪代码或提示。但我真正需要的是解释我需要做什么,以及输出应该是什么样子。请不要写太多的代码,尽管我想自己尝试一下 (())=我的笔记 任务是: 一种程序(prog.exe)((我们得到了这个程序))从名为input.in的输入数据文件中读取2个整数(m,n)和1个双精度(a)。例如,给定文件中的示例input.in包含这些值 5 7 1.23456789012345 运行/prog.exe时,输出是一长列

我不是在寻找这个问题的答案。我很难理解在这项任务中我应该努力完成什么。如果您愿意,我欢迎使用伪代码或提示。但我真正需要的是解释我需要做什么,以及输出应该是什么样子。请不要写太多的代码,尽管我想自己尝试一下

(())=我的笔记

任务是:

一种程序(prog.exe)((我们得到了这个程序))从名为input.in的输入数据文件中读取2个整数(m,n)和1个双精度(a)。例如,给定文件中的示例input.in包含这些值

5 7 1.23456789012345

运行/prog.exe时,输出是一长列浮点数

除了程序之外,还有一个名为ain.in的文件,其中包含一长列双精度值

将中的prog.exe和ain.复制到工作目录

编写一个bash脚本,执行以下操作:

-为所有的组合运行/prog.exe

--m=0,1,…,10

--n=0,1,…,5

--a=文件中的每个值ain.in

-这本质上是一个三重嵌套循环,覆盖m,n和ain.in值

-对于上述m、n和ain.in值的每个组合:

--生成适当的输入文件input.in

--运行程序并将输出重定向到某个临时输出文件

--从这个临时输出文件中提取第37和第51个值,并将它们存储在名为average.in的文件中

-当3个嵌套循环终止时,平均值.in文件应包含一长串浮点值

-脚本应返回average.in中包含的值的平均值

提示:seq、awk、输出方向在这里很有用


感谢那些花时间阅读本文的人。
这是我的第二个bash编码作业,我仍在努力掌握它,更好的解释将非常有用。再次感谢

我们的想法是编写一个bash脚本,用各种输入条件测试prog.exe。这意味着重新创建input.in并多次运行prog.exe。每次运行prog.exe时,input.in应包含不同的三个数字,例如

首次运行:

0 0 <first line of ain.in>

最后,在测试所有组合后,平均.in

我们的想法是编写一个bash脚本,用各种输入条件测试prog.exe。这意味着重新创建input.in并多次运行prog.exe。每次运行prog.exe时,input.in应包含不同的三个数字,例如

首次运行:

0 0 <first line of ain.in>

最后,在测试所有组合后,平均.in

这是一种不使用显式循环生成所有输入组合的方法

join -j9 <(join -j9 <(seq 0 10) <(seq 0 5)) ain.in | cut -d' ' -f2-

join-j9这是一种不使用显式循环生成所有输入组合的方法

join -j9 <(join -j9 <(seq 0 10) <(seq 0 5)) ain.in | cut -d' ' -f2-

join-j9一款灵感源自@karakfa:

join -j9 <(join -j9 <(seq 0 10) <(seq 0 5)) ain.in | cut -d' ' -f2- |
    sed "s/.*/echo & >input.in;./prog.exe>tmp.out; sed -n '37p;51p;51q' tmp.out/" |
    sh | awk '{sum+=$1; n++} END {print sum/n}'

join-j9一款灵感源自@karakfa:

join -j9 <(join -j9 <(seq 0 10) <(seq 0 5)) ain.in | cut -d' ' -f2- |
    sed "s/.*/echo & >input.in;./prog.exe>tmp.out; sed -n '37p;51p;51q' tmp.out/" |
    sh | awk '{sum+=$1; n++} END {print sum/n}'

join-j9使用
sed
awk
选择特定行可能比
tail | head
更好;用
sed
替换
tail | head
。使用
sed
awk
选择特定行可能比
tail | head
更好。True;将
tail | head
替换为
sed
。太棒了!不知道加入的存在。甜蜜!不知道有没有加入。