Назад | Перейти на главную страницу

поиск группы строк, общих в двух файлах

Раньше я использовал команду diff. Я столкнулся с ситуацией, в которой я не имел ни малейшего представления, вот несколько текстовых строк (которые можно сохранить в файле)

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 ядра, который выглядит следующим образом

http://pastebin.com/AEQ6p9Vm Это очень большой файл.

Теперь я понятия не имел, могу ли с помощью команд найти записи, которые я впервые упомянул, существуют ли они во втором файле или нет, поэтому я вручную скопировал каждую запись и поискал в упомянутом мною .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

Можно ли это легко сделать с помощью команды find grep или чего-то подобного?

Это покажет строки в большом файле, которые соответствуют строкам в списке.

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

Сначала отсортируйте два файла.

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

Чтобы увидеть строки, которые есть в вашем списке и в вашем файле конфигурации, запустите

comm -1 -2 list-sorted config-sorted

Чтобы увидеть строки в вашем списке, которых нет в вашем файле конфигурации, запустите

comm -2 -3 list-sorted config-sorted