Quantcast
Channel: Linux –俺的備忘録 〜なんかいろいろ〜
Viewing all articles
Browse latest Browse all 743

シェル芸でファイル読み込み時に文字を1文字づつゆっくりターミナル上に表示させる

$
0
0

LinuxやOS Xでファイルの中身を表示する際、catなどで開くと一瞬で中身を表示してくれるのだが、これを1文字づつゆっくり表示させることができないかと思いやってみた。
意外と簡単にできるようだ。ここでは、例としてtest1.txtというファイルに対して処理を行っている。

無難にwhileとreadを組み合わせてやる場合、以下のようにコマンドを実行する。

cat test1.txt | while IFS= read -rN1 c; do printf "$c";sleep 0.1;done
while IFS= read -rN1 c; do printf "$c";sleep 0.1;done < test1.txt

もしくはちょっと長くなるのだが、scriptreplayコマンドを利用する方法も面白いかもしれない。

scriptreplay -t <(yes 0.1 1 | head -$(wc -m test1.txt | awk '{print $1}')) <(cat <(echo '') test1.txt)
scriptreplay -t <(yes 0.1 1) <(cat <(echo '') test1.txt) 2> /dev/null

 

ちょっとだけLinuxにさわってみたい人のための Bash on Ubuntu on Windows入門 ちょっとだけLinuxにさわってみたい人のための Bash on Ubuntu on Windows入門

Viewing all articles
Browse latest Browse all 743

Trending Articles