Sample Site

GAWK ターミナルで遅延表示

拡張関数 sleep() @load "time"

表示を遅延させることに深い意味はありません。GAWK では、普通に使っている限り、拡張関数 sleep() の出番はあまりないかと思います。sleep(sec) は sec 秒間処理を中断させます。sec は整数である必要はなく、例えば、0.001 秒間中断とすることも可能です。

slow_print.awk

BEGIN
1 : # slow_print.awk 2 : # usage: gawk -f slow_print.awk infile 3 : 4 : @load "time"; 5 : BEGIN{ 6 : srand(sprintf("%d%06d", systime(), PROCINFO["pid"])); 7 : }
ACTION_01
8 : { 9 : slow_print($0); 10 : }
slow_print()
11 : 12 : function slow_print(str, i, ch) { 13 : while (ch = substr(str, ++i, 1)) { 14 : sleep(rand() / 2); 15 : printf("%s", ch); 16 : } 17 : sleep(rand()); 18 : print ""; 19 : }