gpt4 book ai didi

perl - 为什么 Unix 命令在 Perl 脚本中不起作用?

转载 作者:行者123 更新时间:2023-12-02 09:32:04 25 4
gpt4 key购买 nike

我想提取从特定模式开始的文本文件的一部分并将其存储在另一个文件中。我的 Perl 脚本采用单个参数作为输入文本文件。到目前为止,我已经:

my $INPUT = $ARGV[0];
my $LINES_TO_DUMP = 4000;
my $startline = `egrep -n "^PATTERN" $INPUT | head -1 | cut -f1 -d:`;

# THIS LINE DOESN'T WORK
system("tail +$startline $INPUT | head -$LINES_TO_DUMP > extracted.txt");

当我运行程序时,它在运行第二个命令时“卡住”了(egrep 命令有效,并存储了正确的数字)。我已在终端中运行该命令以确保其有效。

出了什么问题?

最佳答案

您的 $startline 中可能有一个换行符,因为它是从命令输出中消耗的。您应该确认这一点,然后在调用 system() 之前在 $startline 上使用 chomp()

这是perldoc for chomp按照建议。

关于perl - 为什么 Unix 命令在 Perl 脚本中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31946055/

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