我在文本文件中有一个netflow信息报告,我想将它们导出为csv格式,如何在Perl中做到这一点?我是Perl的新手,只是开始学习它。
这是文本文件:
Duration Flags
10.10.10.1 10.10.11.11 51251 445 2019-03-05 11:59:29.008 29.156 ......
10.10.10.2 10.10.11.22 51234 123 2019-03-05 11:40:29.008 30.156 .A..SF
Run Code Online (Sandbox Code Playgroud)
我想将其导出为excel格式,如下所示。
10.10.10.1,10.10.11.11,51251,445,2019-03-05 11:59:29.008,29.156,......
10.10.10.2,10.10.11.22,51234,123,2019-03-05 11:59:29.008,30.156,.A..SF
Run Code Online (Sandbox Code Playgroud)
我试图做如下
use strict;
use warnings;
open my $fh, '<', 'file.txt';
open my $fo, '>', 'file.csv';
while (<$fh>) {
next if ($. == 1);
s/\b \b/,/g;
my $text = (join ',', (split /\s+/, $_))."\n";
print $fo $text;
}
Run Code Online (Sandbox Code Playgroud)
但结果是开始的每一行都会再加上一个',',如下所示,
,10.10.10.1,10.10.11.11,51251,445,2019-03-05 11:59:29.008,29.156,......
,10.10.10.2,10.10.11.22,51234,123,2019-03-05 11:59:29.008,30.156,.A..SF
Run Code Online (Sandbox Code Playgroud)
这就是我想要的,我的代码有什么问题?
10.10.10.1,10.10.11.11,51251,445,2019-03-05 11:59:29.008,29.156,......
10.10.10.2,10.10.11.22,51234,123,2019-03-05 11:59:29.008,30.156,.A..SF
Run Code Online (Sandbox Code Playgroud)
无论如何这样做?谢谢。
有几个步骤可以解决此问题。我将不仅仅将答案提供给您,还将逐步指导您完成这些步骤,并为您提供一些可在每个阶段帮助您的功能的文档。
open()函数用于打开文件并将该文件附加到文件句柄,您可以使用该句柄从文件中读取数据。< ... >)。split()功能。join()。print()。close()。我故意遗漏了您的问题的一个有趣的角落。每个人都需要一个肉类问题才能进入牙齿,对吗?:-)
可以根据这些信息编写一些东西,如果您还有其他问题,请随时在这里提问。