Como posso excluir um item de linha que contém nome e sobrenome em um arquivo várias vezes em um item de linha diferente?

0

62705300019623531 0000009200AR000000027283 HILL, CLAY
62705300019623531 0000009200AR000000046485 HILL, CLAY | 62705300019623531 0000009200AR000000027787 HILL, DORIS M

como no arquivo eu postar eu tenho um arquivo enorme com nomes duplicados diferentes, por exemplo, eu quero excluir o segundo item de linha para Hill Clay mesmo os outros números não são duplicados, eu preciso apenas o primeiro registro (item de linha) e remova as linhas que contêm o mesmo nome e sobrenome. No Excel eu posso destaca a coluna e remover duplicado, não está funcionando para mim, mesmo quando eu uso marca todos ou lugar RegRex? talvez eu esteja usando caminho errado ou fórmula? Por favor informar!

    
por Abou 17.02.2016 / 16:38

1 resposta

0

Esta não é uma tarefa para um editor, embora possa ser feita via script (python) do np ++.

Eu preferiria sugerir o uso do interpretador awk (você pode baixar o executável nativo do windows):

Crie script.awk com conteúdo:

{ name=gensub(/^[0-9A-Z]+ [0-9A-Z]+ /, "", 1) }

$1 == oldnum && name==oldname {next}

{ print $0, oldnum=$1; oldname=name}

Em seguida, execute

awk -f script.awk yourfile.txt > output.txt

E vamos ver como é possível dentro do np ++ usando o script python. Supondo que o plug-in Script Python e o interpretador python estejam instalados, você pode escrever esse código selecionando Plug-ins - > Script Python - > Novo script (os níveis de identificação devem ser mantidos):

from Npp import *

content = editor.getText()
newcontent = ""

oldnum=""
oldname=""
for line in content.splitlines():
    fields = line.split( None, 2)
    if fields[0] != oldnum or fields[2] != oldname:
        newcontent += line + "\n"
        oldnum = fields[0]
        oldname = fields[2]

editor.clearAll()       
editor.appendText( newcontent)

Basta nomear algo como dedup .

Carregue seu arquivo de dados em uma guia e, dentro dessa guia, selecione Plug-ins - > Scripts Python- > Scripts- > dedup ... e deve estar tudo bem agora.

    
por 17.02.2016 / 17:01

Tags