Я пытаюсь найти дубликаты в моем огромном текстовом файле и пытаюсь распечатать его в другом текстовом файле. Но я не могу напечатать это в другом.

Вот что я получил до сих пор:

 for dup in $(cut -d " " -f1 input.txt | uniq -d); do grep -n -- "$dup" input.txt; done

Input.txt содержит:

 "Root_Controller"
 "Instance_controller"
 "Path_finder"
 "size_manager"
 "Instance_controller"
 "text_controller"
 "file_processor"
 "string_processor"
 "size_manager"
 ".......
  .......

Мне нужно найти дубликаты в этом файле и распечатать его в другом текстовом файле.

Выведите что-то вроде:

 Instance_controller
 size_manager

Пожалуйста, помогите мне с этим. Это текстовый файл, состоящий почти из 1000 строк, и, пожалуйста, позвольте мне найти его, если у меня есть количество текстовых файлов (сравнивая содержимое текстового файла внутри него, а не сравнивая содержимое одного текстового файла во всех других текстовых файлах),

2 ответа2

1

Вы должны использовать партию? Если вы готовы использовать Powershell, который уже много лет является частью ОС Windows, это не сложно.
Чтобы увидеть только уникальные предметы:

get-content .\input.txt | select -unique | out-file unique.txt

Вы также пытаетесь сказать, что хотите знать, какие слова дублируются?
Если это так, это даст вам некоторую информацию об этом.

get-content .\input.txt | group-object | where { $_.count -ne 1 } | format-table -auto -prop name,count

Name                Count
----                -----
Root_Controller         2
Instance_controller     4
Path_finder             2
size_manager            3

РЕДАКТИРОВАТЬ за комментарий
Объедините текстовые файлы, которые вы хотите отсканировать, в один файл, а затем запустите команду, которую я разместил ранее.

get-content file1.txt > input.txt
get-content file2.txt >> input.txt
get-content file3.txt >> input.txt
0
@ECHO OFF
SETLOCAL
FOR /F "usebackq tokens=* delims=" %%a IN (%1) DO (
    IF NOT DEFINED line["%%a"] (
        SET line["%%a"]=defined
    ) ELSE IF NOT DEFINED dupe["%%a"] (
        SET dupe["%%a"]=defined
        ECHO %%a
    )
)

Использование:

script_name.cmd infile > outfile

В вашем примере infile содержимого outfile будет содержать следующее:

 "Instance_controller"
 "size_manager"

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