我想提取从某种模式开始的文本文件的一部分,并将其存储在另一个文件中。我的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
有换行符,因为它是从命令输出中消耗掉的。您应该确认这一点,然后chomp()
在致电$startline
之前使用system()
。
这是建议的perldoc for chomp。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句