Форум программистов, компьютерный форум, киберфорум
Наши страницы

Batch (CMD/BAT)

Войти
Регистрация
Восстановить пароль
 
combayner
0 / 0 / 0
Регистрация: 12.05.2017
Сообщений: 8
#1

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

12.12.2017, 22:25. Просмотров 172. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нахождение строки по паттерну и ее экспорт (CMD/BAT):

Время по паттерну - PHP
Добрый день Прошу помощи, нужен паттерн такого вида: две цифры двоеточие две цифры - 12:34. Добавлено через 2 часа 2 минуты ...

MS SQL Поиск по паттерну - C#
Каким образом с помощью Entity Framework можно искать данные по паттерну: 1) Найти все АБВ*Д (т.е. знак * говорит что между АБВ и Д может...

По паттерну visitor - ООП и паттерны
допустим, у меня есть Visitable с методом accept и Visitor с методом visit. Соответственно я пишу что то вроде ...

Литература по паттерну MVP - C#
Добрый день, подскажите, плиз, какую литературу лучше почитать по паттерну Model View Presenter

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

.NET 4.x Поиск по Паттерну (Text Pattern) - C#
Добрый вечер. Хочу написать программу, но для взятия значений необходимы офсеты, а так как не маленький и прогружать его в IDA Pro долго и...

7
alpap
1346 / 1077 / 341
Регистрация: 26.04.2015
Сообщений: 3,876
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
0 / 0 / 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
1346 / 1077 / 341
Регистрация: 26.04.2015
Сообщений: 3,876
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
0 / 0 / 0
Регистрация: 12.05.2017
Сообщений: 8
13.12.2017, 15:32  [ТС] #5
alpap,
так надо?
Да, именно.
Спасибо балшое

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

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

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

Про VBS подскажете?
0
alpap
1346 / 1077 / 341
Регистрация: 26.04.2015
Сообщений: 3,876
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
Привет! Вот еще темы с ответами:

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

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

Экспорт в Excel В строки и столбцы - MS Access
Добрый день! подскажите каким образом можно экспортировать таблицу Access в Excel, что бы часть данных выводилась в столбец а часть в...

экспорт в Excel нужной строки - Delphi
я хочу что бы у меня с базы выводило только нужную информацию в нужную ячейку подскажите как реализовать?


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

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

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