find两个文件中常见的一组string

我在过去使用了diff命令。我面对的情况是,我没有一点线索,有些文本string(可以存储在文件中)

CONFIG_XEN=y CONFIG_XEN_PVHVM=y CONFIG_XEN_MAX_DOMAIN_MEMORY=128 CONFIG_XEN_SAVE_RESTORE=y CONFIG_XEN_DEBUG_FS=y CONFIG_SWIOTLB_XEN=y CONFIG_MICROCODE_XEN=y CONFIG_XEN_DOM0=y CONFIG_XEN_PRIVILEGED_GUEST=y CONFIG_XEN_DOM0_PCI=y CONFIG_XEN_PCI_PASSTHROUGH=y CONFIG_PCI_XEN=y CONFIG_XEN_PCIDEV_FRONTEND=y CONFIG_XEN_BLKDEV_FRONTEND=y CONFIG_NETXEN_NIC=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_KBDDEV_FRONTEND=y CONFIG_HVC_XEN=y CONFIG_XEN_FBDEV_FRONTEND=y CONFIG_XEN_BALLOON=y CONFIG_XEN_SCRUB_PAGES=y CONFIG_XEN_DEV_EVTCHN=y CONFIG_XEN_BACKEND=y CONFIG_XEN_NETDEV_BACKEND=m CONFIG_XEN_BLKDEV_BACKEND=m CONFIG_XEN_BLKDEV_TAP=m CONFIG_XEN_BLKBACK_PAGEMAP=m CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_XEN_PCIDEV_BACKEND_VPCI=y CONFIG_XENFS=y CONFIG_XEN_COMPAT_XENFS=y CONFIG_XEN_SYS_HYPERVISOR=y CONFIG_XEN_MCE=y CONFIG_XEN_XENBUS_FRONTEND=y CONFIG_XEN_GNTDEV=y CONFIG_XEN_S3=y CONFIG_ACPI_PROCESSOR_XEN=y CONFIG_XEN_PLATFORM_PCI=m 

我必须基本上在内核的.config文件中find上面的string(没有其他),如下所示

http://pastebin.com/AEQ6p9Vm这是一个非常大的文件。

现在我不知道,如果通过命令我可以find我第一次提到的条目是否存在于第二个文件或没有,所以我手动复制每个条目,search我提到的.config我发现

有以下的不同点

  # CONFIG_XEN_DEBUG_FS is not set CONFIG_XEN_BLKBACK_PAGEMAP <--- is completely missing # CONFIG_XEN_NETDEV_BACKEND is not set # CONFIG_XEN_BLKDEV_BACKEND is not set # CONFIG_XEN_BLKDEV_TAP is not set CONFIG_XENFS=y # CONFIG_XEN_GNTDEV is not set 

这可以很容易地通过查找grep或类似的东西?

这将显示大文件中与列表中的行匹配的行。

 grep -Ff string-list-file very-big-file 

首先,sorting你的两个文件。

sort list > list-sorted
sort config > config-sorted

要查看列表和configuration文件中的行,请运行

comm -1 -2 list-sorted config-sorted

要查看列表中不在configuration文件中的行,请运行

comm -2 -3 list-sorted config-sorted