我想打印那些有 5 个管道分隔符且名字与 CHINA 匹配的记录。 我尝试了以下方法但没有输出。
my @country_records = (
'CHINA|hk|UK|pak|ind|arg',
'HK|UK|Pak|ARG|Nep',
'Lon|WC|Chile|SA',
'CHINA|hk|UK|pak|arg|ind',
'CHINA|AFg|UK|pak|arg',
);
for my $item (@county_records) {
my $value = q( awk -F '|' -v string=CHINA 'NF == 5 && $item == string' );
my $record = system($value);
print $item;
}
最佳答案
无需为此调用 awk:
my @items = split /\|/, $item, -1;
if ((@items == 6) && ($items[0] eq 'CHINA')) {
print $item;
}
split
在 |
字符上,然后检查它给出 6 个项目,第一个是 CHINA
。
关于perl - For 循环以匹配数组中所需的记录值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24366809/