linux - 如何将文件内容分段打印到屏幕上?

标签 linux perl shell io

我正在尝试将命令输出存储到一个文件中(工作正常),然后我想做的是将文件内容显示到屏幕上。 我的问题是我希望它分部分显示(例如一次显示 20 行)并让用户按 [Enter] 或任意键继续下一部分。我正在考虑将文件内容通过管道传输到 more 但是它会立即显示整个文件内容,而不是按部分显示。

这是我负责打开文件、写入文件然后在屏幕上显示的部分代码。

open FILE, '>', $filename;
print FILE @command;

open FILE, '<', $filename;
while (<FILE>) {
    open MORE, '| more';
    print MORE;
}
close MORE;
close FILE;

最佳答案

use strict;
use warnings;

my @command = map "output line $_\n", 1..100;

my $page_size = 20;
my $n = 0;

for my $line (@command) {
    print $line;
    $n ++;
    if ($n % $page_size == 0) {
        print "--More--";
        <>;
    }
}

关于linux - 如何将文件内容分段打印到屏幕上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16534746/

相关文章:

javascript - 激活输出不会因输入变化而改变太多 [Synaptic]

regex - linux通过sed截取正则表达式模式

linux - 在 Linux/Bash 中随机改组行

python - 如何将一组 csv 文件转换为另一组 csv 文件(具有不同的文件名和格式)?

linux - 具有宽度位置的列

linux - cp : target '/root/var/www/html/' is not a directory

perl - 使用 Getopt::Long 为同一变量赋值

windows - 我想从一个 perl 脚本运行另一个 perl 脚本,但我需要单独执行它

perl - 如何将导入语义实现到当前 block 范围?

shell - 需要使用批处理/Windows 命令行枚举未知的注册表项