Любой язык - как удалить любые две буквы между двумя знаками «>» и «/» в каждой строке в текстовом

Ответить
Аватара пользователя
sergey14235

Любой язык - как удалить любые две буквы между двумя знаками «>» и «/» в каждой строке в текстовом

Сообщение sergey14235 »

как удалить любые две буквы между двумя знаками «>» и «/» в каждой строке в текстовом файле, используя bat?



59/592582ae031011e6e19f141877341409

93/93ffff76b4fc11e85a8d2cfda1bf577d

1b/1b730c7216ae11e6cd8f141877341409

33/335902e616af11e6cd8f141877341409

a9/a9034ee4b39e11e55f83141877341409

69/69bd29c8031011e6e19f141877341409
Аватара пользователя
megaloman

Re: Любой язык - как удалить любые две буквы между двумя знаками «>» и «/» в каждой строке в текстовом

Сообщение megaloman »

sergey14235, никак

в батнике не получится анализировать строки содержащие >
Аватара пользователя
Busla

Re: Любой язык - как удалить любые две буквы между двумя знаками «>» и «/» в каждой строке в текстовом

Сообщение Busla »

Цитата 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.
Аватара пользователя
megaloman

Re: Любой язык - как удалить любые две буквы между двумя знаками «>» и «/» в каждой строке в текстовом

Сообщение megaloman »

Busla, Я не понимаю, в чём задача, но если надо из приведенного текста из файла сделать файл с текстом
Цитата:



592582ae031011e6e19f141877341409

93ffff76b4fc11e85a8d2cfda1bf577d

1b730c7216ae11e6cd8f141877341409

335902e616af11e6cd8f141877341409

a9034ee4b39e11e55f83141877341409

69bd29c8031011e6e19f141877341409



То вот код

Код:

Код: Выделить всё

@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 (>"%OutFile%" &>>"%OutFile%" Echo.)
Exit /B
Ответить

Вернуться в «Скриптовые языки администрирования Windows»