Подсчет слов и нахождение заданного слова, замена и его замена на другое.
Здравствуйте все, а каким образом посчитать и вывести на экран количество появления заданного слова без учета регистра, у меня вроде получилось вот таким вот скриптом, а ещё мне нужно заменить все слова the на другое заданное слово и перезаписать текстовый документ, помогите с этой нетривиальной для меня задачей.
Код:
@echo off
set /a count=0
for /f "usebackq delims=" %%a in ("text.txt") do for %%i in (%%a) do (
if %%i == the set /a count+=1
)
echo count : %count%
pause
|
Цитата:
Цитата zeroua
посчитать и вывести на экран количество появления заданного слова без учета регистра, ... а ещё мне нужно заменить все слова the на другое заданное слово и перезаписать текстовый документ »
|
Подобную задачу решал с помощью vbs скрипта (ибо bat неудобен для подобных задач) в составе SetTools, посмотрите там скрипт, может подойдет.
|
Тогда так:
Код:
if /i %%i==the set /a count+=1
.
|
Georgio, угумсь тут я знаю, а вот реализации замены текста средствами командной строки более чем неудобная штука.
Цитата:
Цитата gora
Подобную задачу решал с помощью vbs скрипта (ибо bat неудобен для подобных задач) в составе SetTools, посмотрите там скрипт, может подойдет. »
|
Спасибо за наводку но хотелось бы конечно справится именно через bat,
Код:
for /f "usebackq delims=" %%a in ("1.txt") do (
set strrr=%%a
set tmpr=%strrr:word=nut%
echo.%tmpr%
)
А если как-то так?
|
Ну тогда я Вам еще уточню задачу: сколько слов the в этой строке?
Цитата:
The then the, nothe the: thethethe the
|
|
Да не вопрос:
Код:
for /f "usebackq delims=" %%a in ("1.txt") do (
set strrr=%%a
call echo %%strrr:word=nut%%>>"2.txt"
)
.
Только "подводных камней" будет куча. Один "камень" даже "выходит на поверхность моря": регистр учитываться будет. Если текст не секретный, то выложите этот файл в архиве и что на что менять напишите.
|
Georgio, это абстрактная задача текстовый документ не имеет значения, я использовал с таким содержанием.
Код:
zzz the the
aaa aaa aaa
the
the
the
aaa
|
Код:
@echo off& :команда "echo off" обязательна
set "word_1=the"
set "word_2=мама"
(
for /f "usebackq delims=" %%i in ("1.txt") do (
for %%j in (%%i) do (
if /i "%%j"=="%word_1%" (
set /p"=%word_2% "<nul
) else (
set /p"=%%j "<nul
)
)
echo.
)
)>"2.txt"
exit /b
|
Georgio, все прекрасно но он создает новый файл, а мне по условию задачи лучше что бы он перезаписал тот же файл, можно это реализовать.
|
Код:
@echo off& :команда "echo off" обязательна
set "word_1=the"
set "word_2=мама"
(
for /f "usebackq delims=" %%i in ("1.txt") do (
for %%j in (%%i) do (
if /i "%%j"=="%word_1%" (
set /p"=%word_2% "<nul
) else (
set /p"=%%j "<nul
)
)
echo.
)
)>"2.txt"
move "2.txt" "1.txt">nul
exit /b
|
Время: 14:49.
© OSzone.net 2001-