bash - 使用 awk 按命令/shell(/etc/passwd 的最后一个元素)对用户进行分组
问题描述
使用 awk 我想要这样的东西:
bin/bash: user1, user2
another shell path: user3, user4
等,直到显示所有路径和用户
我只知道如何使用“seen”从 /etc/passwd 获取所有 shell:
awk -F: '(!seen[$7]++){print $7}' /etc/passwd
有谁知道如何做到这一点?
解决方案
You may use this awk
:
awk -F: 'NF>5{a[$NF] = ($NF in a ? a[$NF] ", " : "") $1}
END{for (i in a) print i ":", a[i]}' /etc/passwd
推荐阅读
- c++ - 如何自动生成结构的新实例?
- exception - 过于贪婪的条件,还是滥用异常?
- model-view-controller - 后端上下文中的 MVC 是什么?
- java - 动作事件上的 JavaFX 计算器应用程序集
- android - 使用 Kivy 访问 android 相机时出错
- python - 防止 Python webbrowser.open() 控制屏幕并阻止其他进程。是否可以最小化打开?
- laravel - laravel relationship not showing foreign key value
- c++ - 加速极慢的 MinGW-w64 编译/链接?
- performance - c代码从嵌套的for循环运行变慢
- spi - 我梦想中的 SPI 多路复用器在哪里?