como extrair algumas linhas em um arquivo de dados, comparando com outro arquivo de dados? (fusão) [duplicado]

1

Eu tenho dois arquivos diferentes:

first file:
id1 19501112
id2 19831207
1d4 20001212
id6 20000101
id10 20061213
id11 20081212
id12 20100109
id13 20101218
id14 20101212
id15 20111111
id16 20150919
id20 20141415

e segundo arquivo:

id100
id2
id4
id44
id10
id16
id2000
id34
id5
id7

, então eu quero extrair essas linhas no arquivo 1, que ids são em comum com ids no segundo arquivo. então eu quero o meu arquivo de saída se parece com:

id2 19831207
1d4 20001212
id10 20061213
id16 20150919

alguma sugestão por favor?

    
por zara 01.10.2015 / 00:39

1 resposta

2

Usando o GNU grep:

grep -w -f file2.txt file1.txt 

Isto diz ao grep para combinar apenas com "palavras" inteiras, e para obter a lista de padrões para procurar no arquivo2.txt

Se houver alguma chance de que o conteúdo do arquivo2.txt possa aparecer no restante das linhas do arquivo1.txt, você poderá usar a substituição de processo do sed e do bash da seguinte forma:

grep -f <(sed -e 's/^/^/ ; s/$/\b/' file2.txt) file1.txt

Isso usa sed para transformar cada linha idN em ^idN\b antes de usá-la em grep -f .

    
por 01.10.2015 / 00:53
yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warning – yii\base\ErrorException

PHP Startup: Unable to load dynamic library 'memcached.so' (tried: /usr/lib/php/20190902/memcached.so (/usr/lib/php/20190902/memcached.so: undefined symbol: igbinary_serialize), /usr/lib/php/20190902/memcached.so.so (/usr/lib/php/20190902/memcached.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '849563',
    'url' => 'how-to-extract-some-rows-in-a-data-file-by-comparing-with-another-data-file-me',
];

$_COOKIE = [
    'advanced-frontend' => '2tfc4m5thso8rj8e24dt3ietcq',
    '_csrf-frontend' => '563fb3afe4391645b670061b0dedf59c16f3888bc8085c4f0228e9a823e085d7a:2:{i:0;s:14:"_csrf-frontend";i:1;s:32:"gE1u0mBv6rGKkvH9Oe6eQx_L6OXTGzNQ";}',
];

$_SESSION = [
    '__flash' => [],
];