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

Unix 打印从foreach循环完成的任务百分比,unix,awk,foreach,tcsh,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% >

我正在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%

更新的数字覆盖同一行上以前的状态。类似于实时行情器的东西这是我发现的满足我需求的东西

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

对我有效的关键元素是打印命令中的“\r”选项,此选项将替换当前行上的文本

你在使用tcsh吗?将你的shell和你想要的输出添加到你的问题中。我在使用tcsh和输出,为什么不在awk中做任何事情,而不是做坏事呢?(见或)。