sergey14235 |
25-04-2019 12:46 2869143 |
как удалить любые две буквы между двумя знаками «>» и «/» в каждой строке в текстовом
как удалить любые две буквы между двумя знаками «>» и «/» в каждой строке в текстовом файле, используя bat?
<frame>59/592582ae031011e6e19f141877341409</frame>
<frame>93/93ffff76b4fc11e85a8d2cfda1bf577d</frame>
<frame>1b/1b730c7216ae11e6cd8f141877341409</frame>
<frame>33/335902e616af11e6cd8f141877341409</frame>
<frame>a9/a9034ee4b39e11e55f83141877341409</frame>
<frame>69/69bd29c8031011e6e19f141877341409</frame>
|
sergey14235, что должно получиться в ответе?
|
sergey14235, никак
в батнике не получится анализировать строки содержащие >
|
greg zakharov |
25-04-2019 15:19 2869158 |
Цитата:
Цитата Busla
в батнике не получится анализировать строки содержащие >
|
Подобное заявление простительно начинающим.
Цитата:
Цитата sergey14235
как удалить любые две буквы между двумя знаками «>» и «/» в каждой строке в текстовом файле, используя bat?
|
Примерный алгоритм: опрашиваем файл на количество строк, перенаправляем его содержимое в отладочный поток, узнаем длину строки, на основании чего генерируем пару случайных чисел (индексы букв в строке), по этим индексам режем строку на сегменты. В переводе на cmd это примерно будет так:
Код:
@echo off
setlocal enabledelayedexpansion
for /f %%i in ('find /v /c "" ^< file.txt') do set "n=%%i"
3<file.txt (
for /l %%i in (1, 1, !n!) do (
set /p s=<&3
for /f "tokens=2 delims=><" %%j in ("!s!") do set "raw=%%j"
call:strlen !raw!
call:rand !i! f
call:rand !i! s
if !f! gtr !s! (
set "var=!f!"
set /a "f=!s!","s=!var!"
)
if !f! equ !s! (
if !s! equ !i! (set /a "f-=2","s-=1") else set /a "s-=1"
)
rem строка и индексы, как извлечь подстроки, сообразите сами
echo !raw! !f! !s!
)
)
endlocal
exit /b
:strlen
set "s=%~1"
set /a "i=1"
:while
set "c=!s:~%i%!"
if defined c set /a "i+=1"&goto:while
exit /b
:rand
set /a "r=!random! * %~1 / 32768 + 1"
set "%~2=!r!"
exit /b
Проще в cmd только используя sed.
|
Busla, Я не понимаю, в чём задача, но если надо из приведенного текста из файла сделать файл с текстом
Цитата:
<frame>592582ae031011e6e19f141877341409</frame>
<frame>93ffff76b4fc11e85a8d2cfda1bf577d</frame>
<frame>1b730c7216ae11e6cd8f141877341409</frame>
<frame>335902e616af11e6cd8f141877341409</frame>
<frame>a9034ee4b39e11e55f83141877341409</frame>
<frame>69bd29c8031011e6e19f141877341409</frame>
|
То вот код
Код:
@Echo Off
Set "InFile=Z:\Box_Arc\txt.txt"
Set "OutFile=Z:\Box_Arc\txt2.txt"
2>nul Del "%OutFile%"
FOR /F "usebackq tokens=1,2,* delims=>/" %%i IN ("%InFile%") DO (<Nul Set /P $V="%%i>%%k">>"%OutFile%" &>>"%OutFile%" Echo.)
Exit /B
|
Время: 13:34.
© OSzone.net 2001-