【问题标题】:How to display exactly 10 lines of a command output [duplicate]如何准确显示 10 行命令输出 [重复]
【发布时间】:2019-02-07 09:53:12
【问题描述】:

我正在开发基于 ARM 的处理器,我正在其中准备一个 shell 脚本,该脚本将一组命令输出写入文本文件。

我希望它准确地写出 10 行命令的输出(例如 top 命令),但我不知道怎么做,请你帮帮我吗?

谢谢。

【问题讨论】:

  • 我没有提供代码,因为我在问一个linux命令问题,不需要代码,谢谢。
  • 清除,我不知道,下次我会具体的
  • 没问题。将来避免不必要的注意的最简单方法是提供一些代码,即使它不起作用。我发现最简单的方法是cat 3 或 4 行 bash 脚本。

标签: linux bash shell terminal


【解决方案1】:

您在哪个操作系统中工作?如果你安装了awk,你 可以做到:

command | awk 'NR<=10' > f.txt

【讨论】:

  • 操作系统:Linux 版本 3.4.35 谢谢,设备支持 awk 命令并且可以运行
【解决方案2】:
command | head -n 10 > file.txt

【讨论】:

  • 谢谢,我正在使用的 ARM 处理器不支持 head 命令,有其他选择吗?
  • command | sed 10q &gt; file.txt 也应该这样做。如果你也没有sed,我想你可以做一个while循环:i=0 ; command | while read line ; do echo $line ; ((i++)) ; test $i -ge 10 &amp;&amp; break ; done
  • sed 命令不受支持,感谢您的建议,但我发现使用 awk 命令更简单的解决方案
【解决方案3】:

如果你想要一个纯 Bash 解决方案:

n=0
command | while (( n++ != 10 )) && IFS= read -r line; do
    printf '%s\n' "$line"
done

【讨论】:

  • 感谢您的帮助,我用 awk 命令找到了解决方案
【解决方案4】:

command | sed 1,10p &gt; f.txt

sed 根据模式过滤行并对其执行操作。在这种情况下,pattern 是过滤编号在 1 到 10 之间的行,而 action 只是将它们打印出来。

【讨论】:

  • 感谢您的帮助,我正在使用的处理器不支持 sed,我使用 awk 命令找到了解决方案
  • 嗨@DebanjanB,我验证了一个解决了我的问题的答案并回答了所有其他答案。
猜你喜欢
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-04
  • 2014-10-26
相关资源
最近更新 更多