Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
combayner
1 / 1 / 0
Регистрация: 12.05.2017
Сообщений: 8
1

Нахождение строки по паттерну и ее экспорт

12.12.2017, 22:25. Просмотров 199. Ответов 7
Метки нет (Все метки)

Уважаемые bat-мэны, нужна помощь!
Пара схожих задачек.

Задача 1

Есть file1.txt и file2.txt

Найти в файле file1.txt строку, начинающуюся с
pattern1 и эту строку экспортировать в file2.txt, заменив его содержимое

Задача 2

Есть file3.txt и file4.txt

Нужно содержимое file3.txt вставить в file4.txt, заменив в нем строку, начинающуюся с pattern1
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2017, 22:25
Ответы с готовыми решениями:

Время по паттерну
Добрый день Прошу помощи, нужен паттерн такого вида: две цифры двоеточие...

По паттерну visitor
допустим, у меня есть Visitable с методом accept и Visitor с методом visit....

Поиск по паттерну
Каким образом с помощью Entity Framework можно искать данные по паттерну: 1)...

Литература по паттерну MVP
Добрый день, подскажите, плиз, какую литературу лучше почитать по паттерну...

Поиск по Паттерну (Text Pattern)
Добрый вечер. Хочу написать программу, но для взятия значений необходимы...

7
alpap
1586 / 1237 / 403
Регистрация: 26.04.2015
Сообщений: 4,343
12.12.2017, 23:41 2
Цитата Сообщение от combayner Посмотреть сообщение
file1.txt
-кодировка
-концы строк
-спецсимволы
т.е. желательно его видеть в архиве

Цитата Сообщение от combayner Посмотреть сообщение
в file2.txt, заменив его содержимое
напрочь?
грубо: echo pattern1 ... строка далее>file2.txt, будет тоже самое

Цитата Сообщение от combayner Посмотреть сообщение
Нужно содержимое file3.txt вставить в file4.txt
-в начало
-в конец
-в середину или еще куда

Цитата Сообщение от combayner Посмотреть сообщение
заменив в нем строку, начинающуюся с pattern1
-в file3.txt или в file4.txt?
-заменив строку на что?
0
combayner
1 / 1 / 0
Регистрация: 12.05.2017
Сообщений: 8
12.12.2017, 23:58  [ТС] 3
По первой задаче уже нашел аналогичный пример
Поиск строк в одном txt-файле и добавление этих строк в другой txt-файл
Всё получилось.

По второй еще раз повторяю/уточняю постановку задачи:

Есть file3.txt и file4.txt

Нужно содержимое file3.txt вставить в file4.txt, заменив в нем строку, начинающуюся с pattern1.
Т.е. в file4.txt нужно найти строку, начинающуюся с pattern1 и ЕЁ ЗАМЕНИТЬ(эту строку) на содержимое file3.txt
0
alpap
1586 / 1237 / 403
Регистрация: 26.04.2015
Сообщений: 4,343
13.12.2017, 01:35 4
file3.txt
Кликните здесь для просмотра всего текста

Код
stroka3 a
stroka3 b
c stroka3


file4.txt
Кликните здесь для просмотра всего текста

Код
d stroka4
pattern1 stroka4 x
stroka4


name.bat
Windows Batch file
1
2
3
@echo off
<file4.txt>$ (for /f "delims=" %%a in ('more') do @echo %%a|>nul findstr /ibrc:"\<pattern1" && <file3.txt more || echo %%a)& >nul move $ file4.txt
pause
file4.txt (измененный)
Кликните здесь для просмотра всего текста

Код
d stroka4
stroka3 a
stroka3 b
c stroka3
stroka4


так надо?

Добавлено через 7 минут
для первой задачи (с моим замечанием) достаточно:
Windows Batch file
1
>file2.txt findstr /irc:"\<pattern1" file1.txt
0
combayner
1 / 1 / 0
Регистрация: 12.05.2017
Сообщений: 8
13.12.2017, 15:32  [ТС] 5
alpap,
так надо?
Да, именно.
Спасибо балшое

Добавлено через 1 час 51 минуту
Однако на реальном материале вылезла засада.

В файле file4.txt та самая строка очень длинная, больше 3 тысяч символов, и при выполнении батника выходит сообщение:
"слишком длинная строка" и замена НЕ происходит
0
alpap
1586 / 1237 / 403
Регистрация: 26.04.2015
Сообщений: 4,343
13.12.2017, 15:34 6
Цитата Сообщение от combayner Посмотреть сообщение
та самая строка очень длинная
тогда вам в PowerShell или все на vbs делайте, зачем вообще эти батники надо было приплетать.
0
combayner
1 / 1 / 0
Регистрация: 12.05.2017
Сообщений: 8
13.12.2017, 16:18  [ТС] 7
Цитата Сообщение от alpap Посмотреть сообщение
тогда вам в PowerShell или все на vbs делайте, зачем вообще эти батники надо было приплетать.
Я не знал про ограничение длины строки в батнике.

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

Про VBS подскажете?
0
alpap
1586 / 1237 / 403
Регистрация: 26.04.2015
Сообщений: 4,343
13.12.2017, 20:00 8
Цитата Сообщение от combayner Посмотреть сообщение
Про VBS подскажете?
увы не силен.
0
13.12.2017, 20:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2017, 20:00

Объяснения, уточнения по MVC-паттерну
Есть 2 ситуации Первая ситуация Оконное приложение, показывающее...

Привести код к DAO паттерну
Доброго времени суток форумчане! Необходимо чтоб в этом коде появился...

Нахождение длины той части строки s, которая не содержит символы из строки s1
Разработать процедуру или функцию, выполняющую заданную операцию над данными...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru