【问题标题】:pinping in unix.. I faced a proplem in the result of more than one pipingunix 中的管道.. 我遇到了多个管道的问题
【发布时间】:2021-12-13 00:33:51
【问题描述】:

我尝试从一个 c 文件中读取和打印数据,该文件对 4 行学生姓名、专业、级别、信用和 GPA 进行排序,我想这样做“”显示最高和最低级别以及 相应的学生姓名”,写下这些命令

echo | sort -n -k 3 | cut -f 1,3 | head -n 1 /home/areej7/file.c
echo | sort -n -k 3 | cut -f 1,3 | tail -n 1 /home/areej7/file.c 

结果不是我们想要的

错在哪里?是管道中命令的顺序吗?

【问题讨论】:

  • echo 本身只输出一个空行。您对对空行进行排序有什么期望?

标签: bash shell unix


【解决方案1】:

您需要将文件输入管道的开头。

cat /home/areej7/file.c | sort -n -k 3 | cut -f 1,3 | head -n 1  
cat /home/areej7/file.c | sort -n -k 3 | cut -f 1,3 | tail -n 1 

【讨论】:

  • 我将这些行写在一个 spearet 文件中,我想在执行文件时在终端中看到结果......那么我如何在终端中打印结果跨度>
  • @Areej 如果您从命令行在 shell 脚本中运行这些命令并且不重定向输出,则输出应该出现在终端中。如果您没有看到任何内容,请通过从管道末尾删除命令进行调试,直到您看到为止。
  • 当我在终端“echo | cat /home/areej7/file.c | sort -n -k 3 | cut -f 1,3 | head -n 1”上写这个时没有输出出现,为什么?
  • @Areej 首先,把echo 去掉。然后从最后开始删除命令。
  • 但我想要同时得到结果
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 2012-12-06
  • 2013-08-15
  • 2021-10-24
相关资源
最近更新 更多