我正在编写一个小脚本,需要运行一个输出多行的程序,然后显示这些行的计数。但是,该程序可能需要几秒钟才能运行,我宁愿不运行两次,一次输出,另一次输入计数。
我可以两次运行程序:
#!/bin/bash
count=$(program-command | wc -l)
program-command
printf "$count lines"
有没有办法在只运行一次程序时获取计数和输出?此输出具有格式,因此理想情况下将保留格式(颜色)。
答案 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[@]}
。