对perl数组使用grep和sed等unix命令

对perl数组使用grep和sed等unix命令,第1张

概述我如何grep perl数组中的某些模式并使用sed命令并将输出保存为另一个数组,如下所示 my @modifiedfiles=`echo @files | grep -E '(DataFiles|Pfgas|Startups)' | sed -e 's/.*something//g; s/#.*$//g;'` 你没有 – 这没有意义:) Perl有grep和map内置: my @filtere 我如何grep perl数组中的某些模式并使用sed命令并将输出保存为另一个数组,如下所示

my @modifIEdfiles=`echo @files | grep  -E '(Datafiles|Pfgas|Startups)' | sed -e 's/.*something//g; s/#.*$//g;'`
解决方法 你没有 – 这没有意义:)

Perl有grep和map内置:

my @filteredfiles = grep { /(Datafiles|Pfgas|Startups)/ } @files;my @modifIEdfiles = map { s/.*something//g; s/#.*$//g; $_ } @filteredfiles;

也可以一步到位:

my @modifIEdfiles =    map { s/.*something//g; s/#.*$//g; $_ }    grep { /(Datafiles|Pfgas|Startups)/ } @files;

但Perls grep和map的行为与命令行grep和map的行为不同.有关详细信息,请参阅文档

> http://perldoc.perl.org/functions/grep.html
> http://perldoc.perl.org/functions/map.html

无论如何你真的想要这样做,它有可能是这样的:

use IPC::Open2;$pID = open2(\*CHLD_OUT,\*CHLD_IN,"grep  -E '(Datafiles|Pfgas|Startups)' | sed -e 's/.*something//g; s/#.*$//g;");for my $file (@files) {    print CHLD_OUT $file."\n";    my $result_fn = <CHLD_IN>;    chomp $result_fn;    push @modifIEdfiles,$result_fn;}

不,你不想这样:)它有很多缺点和失败的高风险.我假设如果grep过滤掉文件,脚本甚至会开始阻止.

总结

以上是内存溢出为你收集整理的对perl数组使用grep和sed等unix命令全部内容,希望文章能够帮你解决对perl数组使用grep和sed等unix命令所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1213543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存