从标准输入读取后如何等待



如果我做类似的事情 cat myfile | myreader

CAT 将逐行发送 myfile 内容,尽可能快地发送到标准输出。

我想逐行发送文件内容,但在每行之后"睡觉"一段时间。

你们中有谁知道这是怎么做到的吗?

我知道可以在我的阅读器中等待,但这不是问题。并不总是可以修改程序读取标准输入,或者在我的情况下是不可取的。

你可以这样做:

$ cat myfile|while read line; do echo $line; sleep 1; done|./myreader

这可以通过以下方式完成:

while read line
do
    echo "$line"
done <<< myfile | ./myreader

但是,你为什么希望这种情况发生?闻起来像你想用script或类似的东西。

你可以让awk在行之间插入一个停顿:

cat myfile | awk '{print $0;system("sleep 2")}' | myreader

或者更好(避免UUOC):

awk '{print $0;system("sleep 2")}' myfile | myreader

相关内容

  • 没有找到相关文章