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

1号

如何在perl数组中对某些模式进行grep并使用sed命令并将输出保存为另一个数组,例如下面的数组

my @modifiedfiles=`echo @files | grep  -E '(DataFiles|Pfgas|Startups)' | sed -e 's/.*something//g; s/#.*$//g;'` 
塞巴斯蒂安

你没有-这没有道理:)

Perl具有grepmap内置:

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;

但是Perlsgrepmap行为与命令行grepmap有关详细信息,请参见文档:

如果您确实想这样做,则可以通过以下方式进行:

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将文件过滤掉,脚本甚至会开始阻塞

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

Unix:使用 sed 命令添加和缩进

来自分类Dev

在perl中使用awk和sed命令

来自分类Dev

UNIX foreach和sed命令!

来自分类Dev

使用grep linux命令和perl regex +捕获组

来自分类Dev

结合使用grep命令和单词数组

来自分类Dev

UNIX Shell脚本if和grep命令

来自分类Dev

使用grep和sed tail -f输出作为'at'命令的参数源进行命令替换

来自分类Dev

使用grep和sed选择

来自分类Dev

UNIX:使用sed使用搜索和替换命令时如何翻译“ /”

来自分类Dev

“无效的命令代码。” 尝试使用grep和sed替换多个文件中的字符串

来自分类Dev

在单行命令中使用grep-awk和sed会导致“无此文件或目录”错误

来自分类Dev

Unix中的grep命令

来自分类Dev

这个grep和sed命令有什么作用

来自分类Dev

使用grep和sed筛选文本

来自分类Dev

使用grep和sed编辑脚本

来自分类Dev

使用grep搜索和替换(未sed)

来自分类Dev

在 bash 中使用 grep 和 sed 的问题

来自分类Dev

UNIX grep命令(grep -v grep)

来自分类Dev

使用linux cat和grep命令

来自分类Dev

使用SED或其他UNIX命令来修复日期格式?

来自分类Dev

使用sed / awk / grep命令编辑txt文件中的值

来自分类Dev

Unix 命令(grep、sed 或 awk):作为输入输出并搜索文件

来自分类Dev

Perl:数组中的Grep

来自分类Dev

Perl grep命令用于嵌套哈希而不是使用循环

来自分类Dev

使用perl和内部命令扩展snmpd

来自分类Dev

grep和sed具体

来自分类Dev

Python 与 grep/sed/awk 命令

来自分类Dev

使用find和grep填充数组