|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] узнать слово имя которого известно на паловину |
|
|
CMD/BAT - [решено] узнать слово имя которого известно на паловину
|
Новый участник Сообщения: 11 |
Профиль | Отправить PM | Цитировать Здравствуйте . можно ли написать такой bat например в файле 1.txt есть много много слов и строк.. как мне найти слова имя которых известно на половину и результат записать в файл txt в столбик.
и второй вопрос есть файл 1.txt в нем много много много строк как оставить только 50 строк а остальные строки удалить и все записать в log.txt Спасибо. |
|
Отправлено: 12:49, 06-01-2015 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Ирина1986:
Ирина1986, определения понятия "слово" отличаются в лингвистике и информатике. Если для простоты принять за слово последовательный набор символов в тексте, разделённый символами пробела, табуляции и перехода на новую строку, то в рамках создания "чистого" пакетного файла не существует ничего лучше решений такого типа: @<"1.txt">"1.log" ( for /f "delims=" %%i in ('more^| findstr /ir "\<первая_половина_слова"') do @( for %%j in (%%i) do @( for /f %%k in ('echo "%%j"^| findstr /ir "^\"первая_половина_слова.*\""') do @( echo %%~k ) ) ) ) @<"1.txt">"1.log" ( for /f "delims=" %%i in ('more^| findstr /ir "вторая_половина_слова\>"') do @( for %%j in (%%i) do @( for /f %%k in ('echo "%%j"^| findstr /ir "\".*вторая_половина_слова\"$"') do @( echo %%~k ) ) ) ) Этот метод имеет много недостатков: 1) в тексте не должно быть кавычек; 2) символы Цитата:
Цитата:
Цитата:
3) "слова", содержащие символы Цитата:
Цитата:
будут проигнорированы; 4) специальные символы в шаблоне поиска должны экранироваться символом Цитата:
5) могут встретиться и другие нюансы. Цитата Ирина1986:
@<"1.txt">"log.txt" ( for /l %%i in (1 1 50) do @( set/p x= if defined x (cmd/v/c echo.!x!) else (echo.) set x= ) ) Ирина1986, привет от ComSpec и Georgio! С Рождеством! |
||||||||
Отправлено: 18:24, 06-01-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Georgio, ой спасибо мальчики
Цитата Georgio:
|
|
Отправлено: 10:54, 08-01-2015 | #3 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Georgio,
Цитата Georgio:
|
|
Отправлено: 20:47, 09-01-2015 | #4 |
Ветеран Сообщения: 1758
|
Ирина1986, Лучше воспользоваться специально написанными для работы с текстом утилитами. Например с помощью sed. Допустим надо найти все "сло..." и "...во" в 1.txt и все совпадения записать в 2.txt
@echo off 1>nul chcp 1251 sed -r "s/\s|\.|,/\n\r/g" 1.txt | sed -nr "/\bсло.+|.+во\b/p" > 2.txt |
|
Отправлено: 22:31, 09-01-2015 | #5 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Foreigner, спасибо конечно но так не пойдет.
мне надо так как я постом выше написала |
Отправлено: 23:18, 09-01-2015 | #6 |
Ветеран Сообщения: 1758
|
Цитата Ирина1986:
|
|
Последний раз редактировалось Foreigner, 10-01-2015 в 15:51. Отправлено: 12:39, 10-01-2015 | #7 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Foreigner, sed не подойдет а может и подойдет просто там столько много ссылок что я не смогла разобраться что скачивать если не трудно дайте прямую ссылку на этот sed
а можно с этим кодом @<"1.txt">"1.log" ( for /f "delims=" %%i in ('more^| findstr /ir "вторая_половина_слова\>"') do @( for %%j in (%%i) do @( for /f %%k in ('echo "%%j"^| findstr /ir "\".*вторая_половина_слова\"$"') do @( echo %%~k ) ) ) ) спасибо. |
Отправлено: 20:12, 10-01-2015 | #8 |
Ветеран Сообщения: 20108
|
Профиль | Отправить PM | Цитировать Цитата Ирина1986:
|
|
------- Отправлено: 20:34, 10-01-2015 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Ирина1986:
|
|
Отправлено: 20:42, 10-01-2015 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Удаление msi приложения когда GUID не известен, а известно имя приложения | Anton04 | Скриптовые языки администрирования Windows | 4 | 22-07-2014 09:20 | |
[решено] Подскажите, как узнать e-mail, с которого идут жалобы | Madoleg | Вебмастеру | 10 | 21-10-2011 11:15 | |
Стало известно кодовое имя Ubuntu 11.10 | OSZone News | Новости информационных технологий | 4 | 11-03-2011 21:32 | |
[решено] Узнать имя пользователя, от которого запущен процесс | vitalisvv | AutoIt | 4 | 16-09-2009 01:16 | |
[решено] Получить имя диска, с которого запущен скрипт | frostyland | AutoIt | 2 | 18-08-2009 10:11 |
|