Linux命令who去除重复

fiy 其他 42

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要去除Linux命令”who”的结果中的重复项,可以使用一些其他的命令和技巧。以下是一种常用的方法:

    方法一:使用sort和uniq命令组合
    命令如下:
    who | sort | uniq

    解释:首先,使用who命令获取当前登录系统的用户列表;然后,通过管道符”|”将结果传递给sort命令,sort命令对用户列表进行排序;最后,通过管道符”|”将排序后的结果传递给uniq命令,uniq命令用于去除重复的行。

    方法二:使用awk命令
    命令如下:
    who | awk ‘!seen[$0]++’

    解释:使用awk命令,在处理每一行时,使用一个数组seen来标记已经出现过的行,当某一行第一次出现时,将其打印出来,即去除重复行。

    方法三:使用awk和sort命令组合
    命令如下:
    who | sort | awk ‘!seen[$0]++’

    解释:先使用sort命令对结果进行排序,再使用awk命令去除重复行。

    这些方法都可以实现去除重复的功能,选择其中一种适用于你的情况即可。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux中,我们可以使用 `who` 命令来查看当前系统上已登录的用户。但是,有时候我们可能会遇到同一个用户登录多次的情况,这会导致 `who` 命令输出中包含重复的用户信息。如果我们想要去除这些重复,可以使用以下几种方法:

    1. 使用 `sort` 命令:
    “`
    who | sort -u
    “`
    这个命令会首先使用 `sort` 对 `who` 命令的输出进行排序,然后使用 `-u` 选项去除重复行。这样就可以输出不重复的用户信息列表。

    2. 使用 `awk` 命令:
    “`
    who | awk ‘!arr[$1]++’
    “`
    这个命令使用 `awk` 对 `who` 命令的输出进行处理。`awk` 中的 `arr[$1]++` 是一个数组 `arr` 的索引,其中 `$1` 表示第一个字段(即用户名)。`awk` 会根据索引值的唯一性来去除重复行。

    3. 使用 `uniq` 命令:
    “`
    who | uniq
    “`
    这个命令会将连续出现的重复行合并为一行。使用 `uniq` 命令时,默认会将重复的行合并,并只输出其中的一行。

    4. 使用 `grep` 命令:
    “`
    who | grep -v “$(who | cut -d’ ‘ -f1 | sort | uniq -d)”
    “`
    这个命令使用 `grep` 来过滤 `who` 命令的输出。`grep -v` 表示排除匹配到的行,`$(who | cut -d’ ‘ -f1 | sort | uniq -d)` 表示查找重复的用户名,并将它们排除。

    5. 使用 `awk` 和 `sort` 命令的组合:
    “`
    who | awk ‘!arr[$1]++’ | sort
    “`
    这个命令先使用 `awk` 命令去除重复行,然后再使用 `sort` 命令对结果进行排序。这样可以得到按照字母顺序排列的不重复的用户信息列表。

    这些方法可以帮助我们去除重复的用户信息,使得 `who` 命令的输出更加清晰易读。根据实际需求,选择适合的方法即可。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux系统中,可以使用命令”who”来查看当前登录到系统的用户信息。有时候会出现重复的用户登录信息,我们可以使用其他工具或命令来去除这些重复的信息。

    下面是几种常用的方法来去除重复的用户登录信息。

    1. 使用sort和uniq命令结合的方式。
    “`shell
    who | sort | uniq
    “`
    上述命令将会把who命令的输出结果通过sort排序,然后通过uniq命令去除重复的行。这样就能够去除重复的用户登录信息。

    2. 使用awk命令。
    “`shell
    who | awk ‘!seen[$0]++’
    “`
    上述命令将会使用awk命令来去除重复的行。它使用一个数组seen来存储每一行的内容,并通过计数器来判断是否已经出现过,如果没有出现过就打印出来。

    3. 使用awk和sort命令结合的方式。
    “`shell
    who | sort | awk ‘!seen[$0]++’
    “`
    上述命令将会先使用sort命令排序who命令的输出结果,然后再使用awk命令去除重复的行。

    4. 使用awk和uniq命令结合的方式。
    “`shell
    who | awk ‘!seen[$0]++’ | uniq
    “`
    上述命令将会先使用awk命令去除重复的行,然后再使用uniq命令去除重复的行。

    使用上面的方法可以方便地去除重复的用户登录信息。根据具体的情况选择合适的方法来使用。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部