bash - 从命令计数和输出行

时间:2016-04-15 16:07:05

标签: bash

我正在编写一个小脚本,需要运行一个输出多行的程序,然后显示这些行的计数。但是,该程序可能需要几秒钟才能运行,我宁愿不运行两次,一次输出,另一次输入计数。

我可以两次运行程序:

#!/bin/bash
count=$(program-command | wc -l)
program-command
printf "$count lines"

有没有办法在只运行一次程序时获取计数和输出?此输出具有格式,因此理想情况下将保留格式(颜色)。

3 个答案:

答案 0 :(得分:8)

使用openDialog("This is a title", new OnOk(){ @Override hereIsYourText (String text){ //I ll log it Log.i("Texting",text); }}); process substitution

tee

要保留颜色,请根据this answer {}添加program-command | tee >(wc -l) 前缀:

script -q /dev/null

答案 1 :(得分:4)

你可以使用awk:

program-command | awk '{print $0; count++} END {print count}'

答案 2 :(得分:0)

有很多方法可以做这样的事情。我个人的偏好是在/ tmp上使用一个文件,因为我将它挂载到内存中。通过这种方式,您可以写入文件,然后对行进行计数并快速输出。

如果您无权访问已安装内存的文件系统,请尝试使用数组来保存结果,以便您可以使用数组大小 echo ${#ArrayName[@]}然后输出echo ${arrName[@]}