sort write failed标准输出断管 - Linux

时间:2017-11-21 19:37:35

标签: linux sorting awk

我在我的脚本中使用以下命令:

max_length=`awk '{print length}' $File_Path_Name/$filnm | sort -nr | head -1`;
min_length=`awk '{print length}' $File_Path_Name/$filnm | sort -nr | tail -1`;

其中filenm变量包含文件名,File_Path_Name包含目录路径 从脚本执行此操作时,我收到错误

  

排序:写入失败:标准输出:管道损坏

有什么建议我做错了吗?

1 个答案:

答案 0 :(得分:2)

您不需要扫描文件两次以获得最大/最小值 尝试

$ read max min < <(awk '{print length}' file | sort -nr | sed -n '1p;$p' | paste -s)

或者您可以通过计算awk

内的最大/最小值来避免排序
$ awk    '{len=length} 
   NR==1  {max=min=len} 
   max<len{max=len} 
   min>len{min=len} 
   END    {print max, min}' file