Раньше я использовал команду 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