首先,我根本不瞭解Perl,因此需要相當快速的回答。我有運行存儲陣列中的一個命令的結果:搜索特定單詞的字符串數組
my @result = `$command`;
我需要做的是搜索數組,看是否有元素包含單詞「合併」或單詞「改變」是什麼(對大小寫不敏感)。
有人可以提醒嗎?
首先,我根本不瞭解Perl,因此需要相當快速的回答。我有運行存儲陣列中的一個命令的結果:搜索特定單詞的字符串數組
my @result = `$command`;
我需要做的是搜索數組,看是否有元素包含單詞「合併」或單詞「改變」是什麼(對大小寫不敏感)。
有人可以提醒嗎?
這裏作業的工具是grep
- 一個允許您根據列表指定過濾器的函數。您可以像使用Unix grep
一樣使用它,但它也允許進行更復雜的測試(例如運行代碼)。
你的情況:
my @matches = grep { /merge|changed/i } @result;
if (@matches) {
print "One or more lines matched\n";
}
您可以用正則表達式做到這一點。在這個例子中,如果匹配線「合併」或「改變」(當然不敏感的)的線被印刷:
#!/usr/bin/perl
use strict;
use warnings;
my @result = `command`;
foreach my $line (@result){
if ($line =~ /merge|changed/i){
print $line;
}
}
'/ \ b(?:merge | changed)\ b/i'將防止'submerged'匹配 – ikegami
在中間斜線 - >確定這是一個錯誤;) 我試過命令'ps aux'和正則表達式/ bAsh | apAChe /我 它的工作很棒 –
'的perldoc -f grep' – toolic
這是grep在Perl coverd:HTTP://計算器.com/questions/3848360/how-can-i-implement -unix-grep-in-perl –
偉大的,低估的不知道perl(我公開承認)或執行不充分的谷歌搜索downvoted。謝謝。 – Wad