gpt4 book ai didi

linux - 将大型 scm 文件拆分为单独的命令

转载 作者:太空宇宙 更新时间:2023-11-04 10:18:24 25 4
gpt4 key购买 nike

我有一个超过 300 万行的非常大的 scm 文件。我正在通过 telnet 端口将其“捕获”到虚拟服务器。我需要将代码拆分成单独的行并将其提供给服务器。它应该发送一行并在发送下一行之前等待几毫秒。例如:

File:

(define x (WordNode = "frustration")) \n

(define x (WordNode = "Anger")) \n

...

Input:
(define x (WordNode = "frustration")) \n

sleep 50 ms

(define x (WordNode = "Anger")) \n

sleep 50 ms

...

最佳答案

如果您可以使用 GNU sleep(它支持休眠小数秒),这很容易:

#!/bin/bash
while IFS= read -r line; do
echo "$line"
sleep 0.05
done < file

或者,将其变成一个小型延迟线实用程序(更符合 Unix 哲学)。

我们称它为 delay.sh(不要忘记 chmod +x delay.sh):

#!/bin/bash
while IFS= read -r line; do
echo "$line"
sleep 0.05
done

我们从标准输入中读取每一行,并延迟输出到标准输出。

使用它,例如,像这样:

head -100 file | ./delay.sh | ...

这将从 file 中获取前 100 行并将其逐条输入,并延迟到管道中的下一个命令(可能是您提到的 telnet在你的问题中)。

并“延迟”完整的文件:

./delay.sh < file

顺便说一句,如果您的文件是 3M 行(如您所说),请记住将每行延迟 50ms 将花费 ~42h.

关于linux - 将大型 scm 文件拆分为单独的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45040658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com