62705300019623531 0000009200AR000000027283 ХИЛЛ, ГЛИНА
62705300019623531 0000009200AR000000046485 ХИЛЛ, ГЛИНА
62705300019623531 0000009200AR000000027787 ХОЛМ, ДОРИС М

как и в файле, который я публикую, у меня есть огромный файл с разными повторяющимися именами, например, я хочу удалить вторую строчку для Hill Clay, даже если другие числа не повторяются, мне нужна только первая запись (строка Item) и удалить строки, которые содержат одинаковые имя и фамилию. В Excel я могу выделить столбец и удалить дубликаты, у меня это не работает, даже когда я использую Mark all или RegRex place? возможно я использую неправильный путь или формулу? пожалуйста, порекомендуйте!

1 ответ1

0

Это не задача для редактора, хотя это может быть выполнено с помощью сценариев (python) для np++.

Я бы предпочел использовать интерпретатор awk (вы можете скачать собственный исполняемый файл Windows):

Создайте script.awk с контентом:

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

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

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

Тогда беги

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

И давайте посмотрим, как это возможно в np++ с использованием сценариев Python. Предполагая, что плагин Python Script и интерпретатор Python установлены, вы можете написать этот код, выбрав «Плагины-> Python Script-> Новый сценарий» (уровни идентификации должны быть сохранены):

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)

Просто назовите это как дедупликация.

Загрузите файл данных во вкладку и на этой вкладке выберите «Плагины» -> «Сценарии Python» -> «Сценарии» -> «дедупликация» ... и теперь все должно быть в порядке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .