gpt4 book ai didi

linux - 使用 Perl 程序和命令行参数读取指定行

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:30:40 25 4
gpt4 key购买 nike

那么,假设我正在编写一个 Perl 程序:

./program.perl 10000 < file

我希望它只读取"file"的第 10000 行。我如何使用这种形式的输入重定向来做到这一点?似乎我不断得到类似 10000 不是文件的信息。

我认为这会起作用:

#!/usr/bin/perl -w
$line_num = 0;
while ( defined ($line = <>) && $line_num < $ARGV[0]) {
++$line_no;
if ($line_no == $ARGV[0]) {
print "$line\n";
exit 0;
}
}

但它惨遭失败。

最佳答案

如果有命令行参数,那么<>打开所谓的文件并从中读取,如果没有,则从标准输入中获取。 (参见 "I/O Operators" in the perlop man-page。)

如果像您的情况一样,您想从标准输入中读取是否有命令行参数,那么您需要使用 <STDIN>相反:

while ( defined ($line = <STDIN>) && $line_num < $ARGV[0]) {

关于linux - 使用 Perl 程序和命令行参数读取指定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11487503/

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