我们可以在 Unix/Linux 中找到文件的页数吗?

Akh*_*adi 5 shell-script text-processing

我想计算文件中的页数/var/log/messages,以便我可以使用pr命令从我想要的页面开始打印。

例如,假设该/var/log/messages文件包含 300 页,那么我可以使用以下内容打印最后 5 页。

pr +295 /var/log/messages
Run Code Online (Sandbox Code Playgroud)

注意:pr当我们指定的页码超过文件中可用页数时,命令将列出页数,如下所述。

pr +400 /var/log/messages
pr: starting page number 400 exceeds page count 313 
Run Code Online (Sandbox Code Playgroud)

话虽如此,我想知道是否有特定的命令来查找页数。

cuo*_*glm 3

pr文本文件的默认页面长度是56. 所以你可以这样做:

$ perl -MPOSIX=ceil -nle 'END{print ceil($./56)}' file
Run Code Online (Sandbox Code Playgroud)

如果您想计算多个文件的数量,请尝试:

$ perl -MPOSIX=ceil -nle '
    if (eof) {
        print ceil($./56);
        close ARGV;
    }
' file1 file2 file3
Run Code Online (Sandbox Code Playgroud)