PDA

Показать полную графическую версию : [решено] Если в строке есть 2-ва "ть" заменить на "ла"


papacoca
31-12-2014, 13:16
Редактирую базу синонимов, словосочетаний.
Если в строке есть 2-ва "ть" заменить на "ла"

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

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

Foreigner
31-12-2014, 14:55
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
Не то... это можно и NotePad сделать* тупо заменить.
Скрипт меняет все "ть" на "ла"
А мне нужно так:
Если в строке есть 1 "ть" - ее не трогать
Если два то заменить.
Если три ее не трогать.
Если четыре не трогать

Georgio
31-12-2014, 16:35
@<"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
Власть, сласть, снасть, грусть, лесть ;)…

papacoca
31-12-2014, 17:36
гуд




© OSzone.net 2001-2012