Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux中从文件打印最小值和最大值_Linux_Scripting_Minmax - Fatal编程技术网

在Linux中从文件打印最小值和最大值

在Linux中从文件打印最小值和最大值,linux,scripting,minmax,Linux,Scripting,Minmax,这是一个家庭作业,我在这里有点不知所措。目标如下: 创建一个名为grades的文件,该文件将包含测验分数。应创建该文件,以便 每行只有一个测验分数。编写一个名为minMax的脚本,该脚本将接受一个参数 表示文件等级,然后确定收到的最低和最高分数 在测验中。脚本应以以下格式显示输出: 你的最高测验分数是#。 你的最低测验分数是# 我所做的是首先对成绩进行排序,使其按顺序排列。然后我尝试使用以下命令对其进行管道传输: sort grades |awk 'NR==1;END{print}' grade

这是一个家庭作业,我在这里有点不知所措。目标如下:

创建一个名为grades的文件,该文件将包含测验分数。应创建该文件,以便 每行只有一个测验分数。编写一个名为minMax的脚本,该脚本将接受一个参数 表示文件等级,然后确定收到的最低和最高分数 在测验中。脚本应以以下格式显示输出: 你的最高测验分数是#。 你的最低测验分数是#

我所做的是首先对成绩进行排序,使其按顺序排列。然后我尝试使用以下命令对其进行管道传输:

sort grades |awk 'NR==1;END{print}' grades
我完成后得到的输出是文件的第一个和最后一个条目,但它不再排序,我不知道如何选择第一个和最后一个来打印它们,是$1和$2吗


任何帮助都将不胜感激。

您可以使用head和tail

头先到

尾巴是最后一个

sort -n grades | sed -n '1s/.*/Lowest: &/p;$s/.*/Highest: &/p;' 
Lowest: 2
Highest: 19
如果要按数字排序,则需要排序-n。 使用sed,您可以一次性处理它

多个Sed COMAMND由;连接;。 1和$s表示第一行和最后一行。 &是整个读取表达式/行。 p打印结果。
-n是-一般不打印

不要将文件名
grades
传递给
awk
。让
awk
从管道中获取信息太好了,谢谢。你们知道这两个数字是如何被使用的吗?这样我就可以打印出最低的测验了?我不确定它们可以调用什么,所以我可以使用它们。是否有方法使用此代码并将成绩文件作为参数添加到其中。所以如果我去运行它,我可以使用./minMax grades,它会工作吗?明白了,我用$1替换grades,然后它可以被传递到它。再次感谢你的帮助!