perl脚本中的awk用法

perl脚本中的awk用法,perl,awk,Perl,Awk,嗨,我正在写一个脚本,它需要使用awk命令对输出的第6列进行grep处理,但我得到了其他输出。 perl中使用awk提取第6列的确切语法是什么 #!/usr/bin/perl use strict; use warnings; use diagnostics; my $filesystem=`df -h |grep -i dev|grep -vE '^Filesystem|proc|none|udev|tmpfs'`; print "(\"$filesystem\"|awk '{print \$

嗨,我正在写一个脚本,它需要使用awk命令对输出的第6列进行grep处理,但我得到了其他输出。 perl中使用awk提取第6列的确切语法是什么

#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
my $filesystem=`df -h |grep -i dev|grep -vE '^Filesystem|proc|none|udev|tmpfs'`;
print "(\"$filesystem\"|awk '{print \$6}')"

Output :
7831c1c4be8c% ./test.pl
("/dev/disk1     112Gi   43Gi   69Gi    39% 11227595 18084674   38%   /
devfs          183Ki  183Ki    0Bi   100%      634        0  100%   /dev
"|awk '{print  $6}')%                                                                               
我正在尝试删除%1。如何删除

7831c1c4be8c% cat test.pl
#!/usr/bin/perl
use warnings;
use strict;

open my $FS, q(df -h |) or die $!;
while (<$FS>) {
print +(split)[4], "\n"
    if /dev/i and not /devfs/;
 }
 7831c1c4be8c% ./test.pl
 40%
Perl中不需要awk

#!/usr/bin/perl
use warnings;
use strict;

open my $FS, '-|', q(df -h) or die $!;
while (<$FS>) {
    print +(split)[5], "\n"
        if /dev/i and not /^Filesystem|proc|none|udev|tmpfs/;
}
Perl中不需要awk

#!/usr/bin/perl
use warnings;
use strict;

open my $FS, '-|', q(df -h) or die $!;
while (<$FS>) {
    print +(split)[5], "\n"
        if /dev/i and not /^Filesystem|proc|none|udev|tmpfs/;
}

正如前面的答案所说,在perl中不需要awk或grep系统调用。但是,我要告诉您,代码不起作用的一个原因是您从未进行过awk系统调用。print不执行系统调用。您必须使用系统来执行它

总之,fwiw您也可以在一行中做您想做的事情,如下所示:

df -h | perl -lnae 'next if $F[0] =~ /regex/; print $F[5]'

正如前面的答案所说,在perl中不需要awk或grep系统调用。但是,我要告诉您,代码不起作用的一个原因是您从未进行过awk系统调用。print不执行系统调用。您必须使用系统来执行它

总之,fwiw您也可以在一行中做您想做的事情,如下所示:

df -h | perl -lnae 'next if $F[0] =~ /regex/; print $F[5]'

您在perl中使用awk的原因是什么?给我们一些输入数据和您喜欢的数据。我想只有使用grep或awk才有可能解决这个问题。您为什么要在perl中使用awk?请给我们一些输入数据以及您喜欢的数据。我想只有使用grep或awkNor才有可能解决这个问题,所以你需要grep来解决这个问题,我确信除了使用df还有其他选择:@TomFenech:处理它:你也不需要grep来解决这个问题,我确信除了使用df还有其他选择:@TomFenech:处理它:为什么echo$df-h |。。。而不仅仅是df-h |@user000001哈,你说得对。回音是完全没有必要的。正如您所知,我单独使用perl比使用$df-h |。。。而不仅仅是df-h |@user000001哈,你说得对。回音是完全没有必要的。可以看出,我单独使用perl比使用bash要多得多