2

我在 linux 机器上有一个目录,里面有数百个文件。它们是相对较短的文件,可以在一两秒内轻松地在命令行中显示和读取。有没有办法以自动方式将所有文件打印到命令行,类似于键入“cat *”,但每次打印之间有一到两秒的延迟,以便我可以读取每个文件?我尝试使用以下方法制作 bash 脚本:

cat $1 
sleep 2

然后调用“bash script.sh *”,但它只打印其中一个文件然后停止。有什么建议么?

4

4 回答 4

3

在脚本中使用循环:

#!/usr/bin/env bash

for f
do
  cat "$f"
 sleep 2 
done
于 2013-06-13T16:24:15.417 回答
0

在您的 shell 提示符中(只要它是sh兼容的 - 很可能):

for i in *; do
   cat $i
   sleep 2
done

也许 ?循环遍历所有文件 ( *) 并cat逐个输出。对于如此简单的事情,您真的不需要单独的 shell 脚本。

于 2013-06-13T16:22:33.303 回答
0
while [ -e "$1" ]
do
  cat "$1"
  shift 1
  sleep 2
done
于 2013-06-13T16:24:02.863 回答
0
for i in $(find /path/to/files -type f -name \*.\*); do
  cat $i;
  sleep 2;
done

这应该可以正常工作:

find /path/to/files -type f

如果您希望关注某个特定的扩展,例如,请尝试以下操作:

find /path/to/files -type f -name \*.cfg

而不是循环,您可以在 find 中完成所有操作

find /path/to/files -type f -name \*.cfg  -print -exec cat {} \; -exec sleep 2 \;

编辑添加凯文并没有失去理智我曾评论说 cat * 可能无法在包含大量文件的大文件夹中工作,他回复了我在他写评论时删除的评论:)

于 2013-06-13T16:24:41.890 回答