我需要将文件的grepped输出变为变量。

时间:2014-09-15 21:26:57

标签: bash perl variables grep

我只是在这里画空白

我有一个用home变量调用的文件,我需要grep文件并删除一行

$HOME = $ENV{HOME};
$servers="$HOME/path/file.conf"

因此,我需要grep文件并从中删除一行。 如果我在一个提示符处,我只会做一个grep -v服务器名,但有没有办法通过修改$ servers来实现这一点我只编辑脚本的一部分但是我需要从这个列表中删除一个服务器。

我正在尝试像

这样的东西
 servers = $($HOME/path/file.conf |grep -v servername); 

但我的Perl不是那么好,我不知道我在哪里出错了。

任何帮助都很可爱,谢谢 CM

2 个答案:

答案 0 :(得分:0)

您可以将文件篡改为一系列行,然后过滤掉您不想要的行:

use File::Slurp;

my @lines = read_file("$HOME/path/file.conf");
@lines = grep { $_ !~ /servername/ } @lines;

答案 1 :(得分:0)

如果你想使用linux grep:

 my $HOME = $ENV{HOME};
 my $servername='someserver.com';
 my @servers = qx(grep -v $servername $HOME/path/file.conf );