首页 > 解决方案 > 如何仅使用行中的一个字段比较两个文件并输出差异和相似之处

问题描述

我在比较所有 passwd 和 shadow 文件的输出时遇到问题,并且仅使用用户名字段输出相同和不同的输出

我正在使用 grep 命令

这是我到目前为止的代码

grep -f shadowfile.txt passwordfile.txt > same.txt
grep -Fxvf shadowfile.txt passwordfile.txt > diff.txt

我希望 same.txt 拥有所有用户,但差异之一中没有条目

标签: bashshell

解决方案


您可以使用以下命令:

awk -F : '{print $1}' passwd.txt shadow.txt |sort | uniq -u > diff.txt
awk -F : '{print $1}' passwd.txt shadow.txt |sort | uniq -d > same.txt

推荐阅读