cyberp1983 |
09-05-2016 06:28 2633085 |
Нужен скрипт или метод который вставит строки в текстовый файл
Есть каталог c:\basa с текстовым файлом numbers.txt
В файле база номеров (680000), каждый с новой строки.
Нужно вставить номер 12345678910(изменяемый) на каждую 25(изменяемое значение) строку этого файла.
Заранее СПАСИБО!!
|
greg zakharov |
09-05-2016 09:47 2633115 |
Быстрее и проще все это решить с помощью sed:
Код:
sed '0~25 s/.*/12345678910/g' < numbers.txt > numbers_edited.txt
Пример выше заменит каждую 25-ую строку значением 12345678910, а вывод перенаправит в файл numbers_edited.txt.
То же, но с помощью PowerShell:
Код:
gc .\numbers.txt -r 25|%{if ($_.Length -eq 25) {$_ -replace $_[-1], '12345678910'} else {$_}} | Out-File numbers_edited.txt -enc default
Правда стоит отметить довольно медленную скорость работы PowerShell по сравнению с тем же sed.
|
Код:
@echo off
pushd "d:\basa"
sed "0~24 s/$/\n1234567890/g" numbers.txt > numbers.tmp
move numbers.tmp numbers.txt
popd
Sed
|
cyberp1983 |
09-05-2016 11:05 2633133 |
Остаётся пустой текстовый файл
файл пустой
Цитата:
Цитата greg zakharov
То же, но с помощью PowerShell: »
|
Ничего не произошло, файл не создался
|
cyberp1983, А Sed есть? Я ссылку на утилиту дал.
|
cyberp1983 |
09-05-2016 11:26 2633139 |
Цитата:
Цитата Foreigner
cyberp1983, А Sed есть? Я ссылку на утилиту дал. »
|
я в этом 2 по 5) утилиту скачал... установил... а куда сам код? в батник?
|
Цитата:
Цитата cyberp1983
а куда сам код? в батник? »
|
Это батник и есть...
|
cyberp1983 |
09-05-2016 11:40 2633145 |
|
Значит вы что-то делаете не так. Мне сложно сказать, т.к. я не знаю, как вы установили sed. У меня все работает.
|
cyberp1983 |
09-05-2016 12:03 2633155 |
Цитата:
Цитата Foreigner
не знаю, как вы установили sed. »
|
По вашей ссылке скачал "Complete package, except sources Setup" и установил
|
Тогда не знаю, возможно каталог с sed не прописан в PATH и батник его не видит. Попробуйте указать полный путь к утилите или добавить ее каталог в PATH:
Код:
@echo off
setlocal
set "path=%path%;C:\Путь\к\Папке где sed.exe"
pushd "d:\basa"
sed "0~24 s/$/\n1234567890/g" numbers.txt > numbers.tmp
move numbers.tmp numbers.txt
popd
|
cyberp1983 |
09-05-2016 12:51 2633161 |
Цитата:
Цитата Foreigner
@echo off
setlocal
set "path=%path%;C:\Путь\к\Папке где sed.exe"
pushd "d:\basa"
sed "0~24 s/$/\n1234567890/g" numbers.txt > numbers.tmp
move numbers.tmp numbers.txt
popd »
|
Спасибо БОЛЬШОЕ! Работает!
|
Время: 02:27.
© OSzone.net 2001-