Combinando 3 ou mais palavras de campos em arquivos csv separados.

0

Eu tenho dois arquivos csv:

Isso é csv1:

11, The Sun Still Shines in Reading, 64312, 464566
13, You and Me Together Again London, 564564, 131355
12, What's the Story Now Your Gone, 4545646, 1124545
17, Hello I love you, 456899, 1259898

Isso é csv2:

69, The Sun Shines, 6464, 52364
12, Tell me your name, 56456, 21345
17, From London to New York, 897944, 234655
97, Reading Still Shines, 545464, 16748967

Eu tenho este código que permite a correspondência de títulos (que estão no campo 2).

cat $csv1 |cut -d, -f2 | while read p; do
  grep -i "$p" $csv2
  if [ $? -eq 0 ];then
    grep -i "$p" $csv1
  fi
done

No momento, esse código examina cada linha no csv1 e, se houver uma linha no csv2 que tenha um título correspondente, ela imprimirá as linhas correspondentes juntas. Isso funciona muito bem.

No entanto, gostaria de adaptar o script para que, em vez de pesquisar um título exato, ele verifique se há três ou mais palavras correspondentes.

Assim, a saída no caso dos dados csv nesta página seria:

11, The Sun Still Shines in Reading, 64312, 464566
69, The Sun Shines, 6464, 52364
97, Reading Still Shines, 545464, 16748967

Que consiste na linha de csv1 no topo, seguida pelas duas linhas de csv2 que possuem 3 ou mais palavras correspondentes no campo 2 (o título). Como posso especificar o número de palavras correspondentes?

    
por nmh 18.05.2016 / 15:07

0 respostas