Вывести процент выполнения задачи из цикла foreach - PullRequest
0 голосов
/ 22 мая 2019

Я обрабатываю содержимое файла, используя цикл foeach в среде unix, и я хотел бы напечатать процент выполненных задач в одной строке на xterm. что-то вроде увеличивающегося счетчика.

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

Содержимое файла1 - это некоторый тест в одном столбце

aaa
bbb
ccc
ddd

Ожидаемый результат -

> 25%
> 50%

обновленные номера перезаписывают предыдущий статус в той же строке. что-то вроде живого тикера

1 Ответ

0 голосов
/ 29 мая 2019

Это то, что я обнаружил, что удовлетворяет моим требованиям

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' в команде печати, эта опция заменит текст в текущей строке,

...