encontrar um grupo de string comum em dois arquivos

1

Eu usei o comando diff no passado. Eu enfrentei uma situação para a qual eu não tinha uma pista aqui estão algumas cadeias de texto (que podem ser armazenadas em um arquivo)

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

Eu tenho que basicamente encontrar apenas strings acima (não qualquer outra) em um arquivo .config do kernel que se parece com o seguinte

link É um arquivo muito grande.

Agora eu não tinha idéia se por comandos eu posso encontrar as entradas que eu mencionei pela primeira vez se existe no segundo arquivo ou não, então eu copiei manualmente cada entrada e procurei no arquivo .config que eu mencionei.Eu encontrei

existem as seguintes diferenças

 # 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

Isso pode ser facilmente feito por encontrar grep ou algo similar?

    
por Registered User 01.03.2011 / 05:11

2 respostas

3

Isso mostrará as linhas no arquivo grande que correspondem às linhas da lista.

grep -Ff string-list-file very-big-file
    
por 01.03.2011 / 05:17
2

Primeiro, classifique seus dois arquivos.

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

Para ver as linhas que estão na sua lista e no seu arquivo de configuração, execute

comm -1 -2 list-sorted config-sorted

Para ver as linhas da sua lista que não estão no seu arquivo de configuração, execute

comm -2 -3 list-sorted config-sorted

    
por 01.03.2011 / 17:04