Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Если в строке есть 2-ва "ть" заменить на "ла" (http://forum.oszone.net/showthread.php?t=293313)

papacoca 31-12-2014 13:16 2450331

Если в строке есть 2-ва "ть" заменить на "ла"
 
Редактирую базу синонимов, словосочетаний.
Если в строке есть 2-ва "ть" заменить на "ла"

Нужно редактировать такие строки:
Цитата:

поддать газу,увеличить
поддать киселя,ударить
поддать пару,увеличить
В такие:
Цитата:

поддала газу,увеличила
поддала киселя,ударила
поддала пару,увеличила

Foreigner 31-12-2014 14:55 2450378

papacoca,
Батник не лучшее решение для работы с текстом.
Код:

@echo off
setlocal
1>nul chcp 1251

for /f "tokens=*" %%i in (1.txt) do call:1 "%%i"

move 2.txt 1.txt
1>nul chcp 866

goto:eof

:1

set "string=%~1"
1>>2.txt echo %string:ть=ла%

Батник должен быть в вин-кодировке (cp1251)

papacoca 31-12-2014 15:09 2450387

Не то... это можно и NotePad сделать* тупо заменить.
Скрипт меняет все "ть" на "ла"
А мне нужно так:
Если в строке есть 1 "ть" - ее не трогать
Если два то заменить.
Если три ее не трогать.
Если четыре не трогать

Georgio 31-12-2014 16:35 2450410

Код:

@<"example.txt">"new.txt" (
for /f "delims=" %%i in ('more') do @(
 set x=%%i
 (
 cmd /v:on /c echo !x!| findstr /irc:"ть[, ]..*ть\>"|>nul findstr /irvc:"ть[, ]..ть[, ]..*ть\>"
 )&& (
 cmd /v:on /c echo !x:ть=ла!
 )|| (
 echo %%i
 )
 )
)

Будем надеяться, что слова "смерть" и "кость" не являются синонимами:).

Iska 31-12-2014 17:06 2450422

Власть, сласть, снасть, грусть, лесть ;)…

papacoca 31-12-2014 17:36 2450433

гуд


Время: 04:37.

Время: 04:37.
© OSzone.net 2001-