我要打印文件的一行,如果它包含字符串A并且不包含字符串B(也在每个冒号处也分成换行符)。正确的语法是什么?这是我尝试过的方法(我希望它打印包含“ bash”的行,但不打印包含数字的行):
my $file = passwdtest;
open(FH, "$file");
foreach (<FH>) {
print join("\n", split(/:/, "$_")) if ($_ =~ /bash/ and $_ != /\d+/);
};
close FH;
$_ != /\d+/
是短的
$_ != ($_ =~ /\d+/)
而不是!=
你需要!~
if ($_ =~ /bash/ and $_ !~ /\d+/);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句