我有两个不同的用户列表。我需要比较用户并确保它们存在于两个文件中。一个是 passwd 文件,另一个是包含用户名和其他信息的平面文件,我可以从中提取排序的用户名列表。
这给了我一个排序的用户名列表:
cat /etc/passwd | cut --fields=1 | sort -k1.2
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点,第二点我如何将它与另一个文件中的另一个用户列表进行比较?如果用户不存在,我会将其添加到平面文件中。
这应该适用于使用带有 bash、diff、awk 和 sort 的进程替换:
diff <(awk -F: '{print $1}' /etc/passwd | sort) <(sort your_other_list_file)
Run Code Online (Sandbox Code Playgroud)
这假设您your_other_list_file只包含用户名,每行一个。除非您发布示例行,否则无法帮助您解析。