Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 15
1

Замена и удаление строк в текстовом файле

27.04.2017, 12:03. Показов 2852. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Есть txt файл, который содержит след. информацию.
Подскажите пожалуйста, как удалить кусок текста и заменить на другую информацию.
Т.е мне нужно удалить содержимое, которое находится в $Log: и заканчивается $ и добавить новую информацию.
Пример:
Исходный файл:
/*
--------- Begin Version Control Data----------------------------------------
-- $URL:$
-- $Rev:$
-- $Date:$
-- $Author:$
-- $Log
sdfsdf
sdfsdfsd
fsdfsdf
sdf
-- $
--------- End Version Control Data -----------------------------------------
*/
Далее заменяем кусок текста(который находится в $xxHistory: и заканчивается $) на любой текст и должны получить вот такой вариант
/*
--------- Begin Version Control Data----------------------------------------
-- $URL:$
-- $Rev:$
-- $Date:$
-- $Author:$
-- $Log
3423sdfsап
3453sdfsdвпвап
-- $
--------- End Version Control Data -----------------------------------------
*/
Вложения
Тип файла: txt delete.txt (279 байт, 9 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2017, 12:03
Ответы с готовыми решениями:

Поиск в текстовом файле строк по шаблону и их удаление или замена задаваемой строкой
Помогите создать правильный Batch (CMD/BAT) фалй который будет искать в текстовых файлах строку...

Замена строк в текстовом файле
Добрый день. Будьте добры, оказать помощь в написании готового bat-файла, который изменит...

Замена в текстовом файле строк по маске
подскажите, можно ли как то замену по маске делать в txt ? например надо найти <sup><a name=r3><a...

Удаление строк в текстовом файле
Доброго времени суток! Требуется помощь. Задача следующая, есть текстовый файл - 1.txt, который...

4
5984 / 1993 / 323
Регистрация: 10.12.2013
Сообщений: 6,874
27.04.2017, 22:32 2
с задачами поиска, замены и удаления строк в текстовых файлах
средствами понятными пользователю лучше всего справляются программы-редакторы текстов.
0
0 / 0 / 0
Регистрация: 03.04.2016
Сообщений: 15
28.04.2017, 06:27  [ТС] 3
Это хороший способ, но я имел виду скрипт, который запускался и "проходил" по файлу и заменял кусок $Log:<текст>$ на новый текст $Log:<новый_текст>$
0
Любознательный
5667 / 1682 / 314
Регистрация: 10.03.2016
Сообщений: 3,820
28.04.2017, 09:32 4
Цитата Сообщение от Stepa290 Посмотреть сообщение
имел виду скрипт
PowerShell
1
2
3
4
$enc=[text.encoding]::getencoding('cp866')
$reg ="новый текст
ещё строка"
[io.file]::readalltext('test.txt', $enc) -replace '(?s)(\$Log\s*\n).*?(\n--\s*\$)',"`$1$reg`$2"|out-file  -enc OEM test-out.txt
Windows Batch file
1
powershell -executionpolicy bypass "&{[io.file]::readalltext('test.txt', $([text.encoding]::getencoding('cp866'))) -replace '(?s)(\$Log\s*\n).*?(\n--\s*\$)',"""`$1новый текст`nещё строка`$2"""|out-file  -enc OEM test-out.txt}"
1
5984 / 1993 / 323
Регистрация: 10.12.2013
Сообщений: 6,874
29.04.2017, 18:09 5
Цитата Сообщение от Stepa290 Посмотреть сообщение
я имел виду скрипт, который запускался и "проходил" по файлу и заменял кусок ...
данная строка вызова текстового редактора Vim "пройдёт" по файлу file.txt
и вставит в начало каждой строки вышеозначенного куска известный всем силам добра фрагмент <Zhoppa>,
затем сохранит изменения:
Windows Batch file
1
vim +"g/\$Log/+1,/\$/-1 s/^/<Zhoppa>" +x file.txt
Кликните здесь для просмотра всего текста
--------- Begin Version Control Data----------------------------------------
-- $URL:$
-- $Rev:$
-- $Date:$
-- $Author:$
-- $Log
<Zhoppa>sdfsdf
<Zhoppa>sdfsdfsd
<Zhoppa>fsdfsdf
<Zhoppa>sdf
-- $
--------- End Version Control Data -----------------------------------------


Добавлено через 48 минут
В первом сообщении я сказал 'средствами понятными пользователю',

уточняю, пользователю редактора vim;

global/что искать/+1 , /что искать/-1 subst/шаблон замены/заменяемый текст

global - включение режима 'для каждой строки в диапазоне'
и далее сам диапазон: начало,конец
начало: символ поиска '/' собственно строка $Log '/' +1 означает 'сместиться на N строк ниже'
конец: символ поиска '/' собственно строка $ '/' -1 означает 'сместиться на N выше'
после этого следует команда, которая будет применяться к каждой строке из диапазона
в данном случае это
subst - замена: '/' ^ - знак начала строки '/' то, что будет вставлено '/'

Добавлено через 21 минуту
И ещё одно пояснение:
все эти птичьи символы - прямые / и экранирующие обратные слэши \, ^ галочки, сочетание s/// итп
выглядят странно для виндус-пользователей, а для unix-пользователей это
привычный, домашний мир( все эффективные консольные утилиты живут именно в этом мире)
и пояснять ничего бы и не пришлось.
0
29.04.2017, 18:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2017, 18:09
Помогаю со студенческими работами здесь

Удаление или замена на другие символы восклицательных знаков в текстовом файле
Подскажите, пожалуйста. Есть файл txt с текстом. Там встречаются восклицательные знаки. Как можно...

Удаление в текстовом файле всех строк, содержащих хотя бы одно из заданных слов
Нужно удалить в текстовом файле все строки в которых содержится хотя бы 1 из ключевых слов. Нашел...

Замена слов в текстовом файле
Здравствуйте уважаемые знатоки ,прошу вашей помощи.Нужен батник который производит замену слов на...

Замена строки в текстовом файле
Помогите пожалуйста Необходимо написать батник. Находит текст в файле 1.txt. Он может меняться,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru