打印从foreach循环完成的任务的百分比

时间:2019-05-22 02:59:30

标签: unix awk foreach tcsh

我正在unix环境中使用foeach循环处理文件内容,我想在xterm上的一行中打印已完成任务的百分比。诸如计数器的增加。

foreach xxx (`cat file1`)
 set total = `wc -l file1`
 # count definination 
 # print percentage completed => count/total
end

file1的内容在单列中进行了一些测试

aaa
bbb
ccc
ddd

预期输出为

> 25%
> 50%

更新的数字将覆盖同一行上的先前状态。像实时行情自动收录机

1 个答案:

答案 0 :(得分:0)

这是我发现满足我要求的内容

set ccc = 0
foreach xxx ( `cat file1 ` )
set nnn = ` wc -l file1`
set ccc = `expr $ccc + 1`
echo $ccc $nnn | awk '{printf ("\r%-5s completed out of %s",$1,$2)}'
end

对我有用的关键元素是print命令中的'\ r'选项,该选项将替换当前行上的文本。