Извлечение текста из каждых трех строк с помощью Windows
У меня есть ОГРОМНЫЙ текстовый файл с информацией о пользователях моего сайта. (11GB+). Он построен так:
Email: example@gmail.com
Address: 1blahblahblahblah (Bitcoin Address).
Password: blahblahblah
Каждая из деталей в отдельной строке. (без пробелов между ними).
Детали, которые мне нужны, это адрес Биткойн. Они нужны мне в текстовом файле, один за другим.
Просто мне нужен пакетный /java/ любой другой скрипт, который пропускает первую строку, берет биткойн-адрес и помещает его в файл, а затем пропускает другую строку... непрерывно.
Мне нужны экспортированные адреса BTC в списке, по одному адресу для каждой строки.
Выход мне нужен:
1Exampleexampleexample
1Exampleexampleexample
1Exampleexampleexample
1Exampleexampleexample
Заранее спасибо, ребята.
3 ответа
Вот скрипт 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()
}
В соответствии с моим обычным предупреждением, не проверяйте это, не создавая резервную копию файла, который вы анализируете. Я проверил это на моей машине (с файлом намного меньшего размера, чем тот, который вы анализируете), и он не должен изменять входной файл, однако ваш пробег может отличаться!
FINDSTR - Поиск строк в файлах.
findstr /I /C:"Address:" "HUGE text file.txt">"BTC addresses"
Следующий ресурс (требуется чтение) (>
, >>
и т. д. специальная страница) Перенаправление
Как извлечь текст из каждой третьей строки?
Детали, которые мне нужны, это адрес Биткойн. Они нужны мне в текстовом файле, один за другим.
Ты можешь использовать 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).
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
- findstr - поиск строк в файлах.