gpt4 book ai didi

linux - 比较和显示哈希值

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:09 24 4
gpt4 key购买 nike

我能够打印 /etc/passwd 中的所有行通过 UID和用户名。

我想比较 UID 的值并通过<150显示对应的用户名和 >150 .

这是我的 while 循环和计数

while(<PASSWD>){
chomp;
my @f = split /:/;
sort @f;
@{$passwd{$f[3]}}=@f;
print @f[3 , 0], "\n";
}

my $count = keys(%passwd);
print $count, "\n";

最佳答案

sort @f 什么都不做 - sort 返回已排序的列表,但不会就地更改它。如果您将 use warnings; 添加到您的程序中,Perl 会告诉您。

我会这样做:

#!/usr/bin/perl
use warnings;
use strict;

open my $PASSWD, '<', '/etc/passwd' or die $!;

my %passwd;
while (<$PASSWD>) {
chomp;
my @f = split /:/;
@{ $passwd{ $f[3] } } = @f;
}

my $reported = 0;
for my $k (sort { $a <=> $b } keys %passwd) {
if ($k > 150 and not $reported) {
$reported = print "Over 150\n";
}
print "$k\n";
}

你也可以grep小键:

my @under150 = grep $_ < 150, keys %passwd;
print $_->[0], "\n" for @passwd{ @under150 };

关于linux - 比较和显示哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16548317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com