Показать сообщение отдельно

  #2402  
Старый 02.09.2017, 01:01
Evan
Познающий
Регистрация: 19.08.2016
Сообщений: 78
Провел на форуме:
15508

Репутация: 0
По умолчанию

Цитата:
Сообщение от igrek  

Я так и делал, через полчаса файл достиг 14гиг и перестал увеличиваться.

В общем всё получилось.

Не сочтите за наглость, но спрошу ещё - а как через CMD можно сделать замену символов в тексте, например заменить +7 на 8. Я погуглил, нашёл код но он с большими файлами отказался работать

@Echo off

setLocal EnableExtensions

set file=1.txt

set dest=2.txt

for /f "UseBackq tokens=1* Delims=[" %%a in ("%file%") do (

if "%%a"==""restore_ps"+7" (echo %%a[ "8" ]>>"%dest%") else (

if "%%b" neq "" (echo %%a[%%b>>"%dest%") else (

echo %%a>>"%dest%"

)))

pause

Попробуй через Powershell. В командной строке ввести команду powershell, появится приглашение оболочки с пометкой PS и уже в ней можно вводить команды для поиска и замены. Создать файл 2.txt из 1.txt где +7 будет заменено на 8 можно командой:

cat 1.txt | % { $_ -replace "\+7","8" } | Out-File 2.txt -encoding default

Так как плюс является специальным символом он экранируется обратным слешем, перед обычными символами слеш ставить не надо. Это будет работать с файлами любого размера, но поскольку powershell работает медленно то файл в пару гигабайт проще оставить обрабатываться на ночь, чем ждать.

Если нужно быстрее, то можно скачать специализированные утилиты типа gsar, или обрабатывать файлы на линуксе - тут страницей выше приводился пример использования команды sed. Опять же повторюсь, что если размер файла не превышает 200 мегабайт, то любой поиск и замену удобно и быстро делать в notepad++.
 
Ответить с цитированием