Извлечение текста из каждых трех строк с помощью Windows

348
Mark

У меня есть ОГРОМНЫЙ текстовый файл с информацией о пользователях моего сайта. (11GB +). Он построен так:

Email: example@gmail.com Address: 1blahblahblahblah (Bitcoin Address). Password: blahblahblah 

Каждая из деталей в отдельной строке. (без пробелов между ними).

Детали, которые мне нужны, это адрес Биткойн. Они нужны мне в текстовом файле, один за другим.

Просто мне нужен пакетный / java / любой другой скрипт, который пропускает первую строку, берет биткойн-адрес и помещает его в файл, а затем пропускает другую строку ... непрерывно.

Мне нужны экспортированные адреса BTC в списке, по одному адресу для каждой строки.

Выход мне нужен:

1Exampleexampleexample

1Exampleexampleexample

1Exampleexampleexample

1Exampleexampleexample

Заранее спасибо, ребята.

-4
Добро пожаловать в Супер пользователя. К сожалению, мы не сервис для написания кода. Вместо того, чтобы просто запрашивать код для выполнения конкретной задачи, пожалуйста, покажите нам, что вы уже пробовали (включая любой код, который у вас есть) и где вы застряли, чтобы мы могли помочь вам с вашей конкретной проблемой. Вопросы, которые задают только код, слишком широки и, вероятно, будут [отложены или закрыты] (http://stackoverflow.com/help/closed-questions). DavidPostill 8 лет назад 1

3 ответа на вопрос

0
DavidPostill

Как извлечь текст из каждой третьей строки?

Детали, которые мне нужны, это адрес Биткойн. Они нужны мне в текстовом файле, один за другим.

Вы можете использовать findstr.

Замечания:

  • У меня нет файла 11GB для проверки.

Тестовые данные:

Email: example@gmail.com Address: address 1 (Bitcoin Address). Password: blahblahblah Email: example@gmail.com Address: address 2 (Bitcoin Address). Password: blahblahblah Email: example@gmail.com Address: address 3 (Bitcoin Address). Password: blahblahblah 

Команда:

findstr Address data.txt > address.out 

Выход:

C:\test>type address.out Address: address 1 (Bitcoin Address). Address: address 2 (Bitcoin Address). Address: address 3 (Bitcoin Address). 

Дальнейшее чтение

0
JosefZ

FINDSTR - Поиск строк в файлах .

findstr /I /C:"Address:" "HUGE text file.txt">"BTC addresses" 

Следующий ресурс (требуется чтение) ( >и >>т. Д. Специальная страница) Перенаправление

0
Trav

Вот сценарий PowerShell, который будет извлекать каждую 2-ю строку (группами по 3) и удалять лишний текст, а также начало и конец этой строки:

$fileToProcess = "C:\users\jsmith\Dropbox\neat scripts\userInfo.txt" $fileToWrite = "C:\users\jsmith\Dropbox\neat scripts\bitcoin.txt"  $reader = [System.IO.File]::OpenText($fileToProcess) $lineCount = 1 try { for(;;) {  $line = $reader.ReadLine() if ($line -eq $null) { break } # process the line if ($lineCount -eq 2) {  $line = $line -replace "Address: " $line = $line -replace ' \(Bitcoin Address\).' Add-Content $fileToWrite ("`n"+$line)  }  $lineCount = $lineCount+1 if ($lineCount -gt 3) { $lineCount = 1} } } finally { $reader.Close() } 

В соответствии с моим обычным предупреждением, не проверяйте это, не создавая резервную копию файла, который вы анализируете. Я проверил это на моей машине (с файлом намного меньшего размера, чем тот, который вы анализируете), и он не должен изменять входной файл, однако ваш пробег может отличаться!

Я не уверен, как запустить сценарии PowerShell. Я получаю эту ошибку с помощью терминала PowerShell: http://i.gyazo.com/36b80fdd2f7f37f6e7dfe1bb4d334022.png Mark 8 лет назад 0
Ваша проблема в том, что ваша политика выполнения PowerShell ограничена. (См. [Это] (https://technet.microsoft.com/en-us/library/ee176961.aspx) для получения подробной информации о политиках выполнения PowerShell.) Закройте все открытые в настоящее время окна PowerShell. Найдите PowerShell в меню «Пуск», щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора ...» и запустите его с правами администратора. Затем введите `Set-ExecutionPolicy Unrestricted`. Предполагая, что все работает нормально, вы можете запустить предоставленный мной скрипт. (Возможно, самый простой способ - скопировать и вставить мой код в PowerShell ISE и запустить его оттуда.) Trav 8 лет назад 0
Хорошо. в этот раз это сработало, но вывод включал «Адрес:», и он мне не нужен, мне нужны только адреса. Спасибо за помощь мне человек Mark 8 лет назад 0
Мое предположение было неверным, поскольку в вашем файле перед каждой строкой были слова «Адрес:». Я отредактирую скрипт, чтобы учесть это. Trav 8 лет назад 0
Должен работать сейчас. Trav 8 лет назад 0
Попытался запустить новый скрипт и получил эту ошибку: http://i.gyazo.com/1a2a7b220d8ac199aa1355742f093589.png Еще раз спасибо за помощь мне. Mark 8 лет назад 0
Вы изменили две переменные для входных и выходных файлов вверху, чтобы они соответствовали вашим фактическим файлам? В противном случае, я действительно не знаю, в чем ошибка. Trav 8 лет назад 0
исходный файл был открыт в другой программе. проблемы исправлены, и ваш скрипт работает как шарм. Спасибо много человек! Я очень ценю это. Mark 8 лет назад 0
Рад, что это помогло. Обязательно выберите вопрос в качестве ответа. Trav 8 лет назад 0

Похожие вопросы