Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl Awk分析文件_Perl - Fatal编程技术网

Perl Awk分析文件

Perl Awk分析文件,perl,Perl,需要帮忙吗 这是我所拥有和想要做的 这是我的文件file.txt Sequences times Ip1 ip2 Protocol info 1 2 10.18.19.12 12.29.29.18 udp hsahdsdd 2 4 10.13.15.67 12.28.29.19 tcp blabla 3 7 10.12.27.28 12.17.281.19 udp hkkk

需要帮忙吗 这是我所拥有和想要做的 这是我的文件file.txt

Sequences   times       Ip1     ip2     Protocol        info
1       2   10.18.19.12 12.29.29.18 udp     hsahdsdd
2       4   10.13.15.67 12.28.29.19 tcp     blabla
3       7   10.12.27.28 12.17.281.19    udp     hkkkljkl
我想(使用Awk)

  • 计算我有多少行并打印该信息+在名为protocol.tx的输出文件中找到的所有协议名称
  • 计算IP1的行数,并将所有Ip的列表添加到另一个名为Ip.txt的输出文件中
谢谢 这是我想要的

#!/usr/bin/perl
$fname = $ARGV[0];
open(FILE, $fname) || die ("cant read \n");
while($ligne=<FILE>)
{
chop ($ligne);
my ($No, $time, $Ip1, $Ip2, $Proto, $info) = split (/ /, $ligne_);
}
system("awk '{print \$6}' $fname");
system ("awk 'END {print NR}' $fname") >line.txt;
#/usr/bin/perl
$fname=$ARGV[0];
打开(文件,$fname)| |死(“无法读取”\n);
而($ligne=)
{
印章($ligne);
my($No、$time、$Ip1、$Ip2、$Proto、$info)=拆分(//,$ligne_2;);
}
系统(“awk'{print\$6}'$fname”);
系统(“awk'END{print NR}'$fname”)>line.txt;

这种形式的
系统
需要一个shell命令,所以

use autodie qw( system );
use String::ShellQuote qw( shell_quote );

system(shell_quote('awk', 'END {print NR}', $fname) . ">line.txt");

但是在Perl中使用
awk
来完成这项琐碎的工作是愚蠢的。

这种形式的
system
需要一个shell命令,所以

use autodie qw( system );
use String::ShellQuote qw( shell_quote );

system(shell_quote('awk', 'END {print NR}', $fname) . ">line.txt");

但是在Perl中使用
awk
来完成这项琐碎的工作是愚蠢的。

?为什么要使用
awk
(在Perl程序中)来执行此操作?对于换行符,最好使用
chomp
而不是
chop
?为什么要使用
awk
(在Perl程序中)来执行此操作?对于换行符,最好使用
chomp
而不是
chop