
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.04.2013, 14:30
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
Кто подскажет по sed Доброго всем дня. Надо из множества файлов исходников на с++ поудалять функцию wxT("...") и .c_str() заодно Код: [Выделить] for /R %%i in (*.cpp *.h) do sed -i "s/wxT([^)]*)/#/;/#wxT(/s/)#//;s/#wxT(//;s/.c_str()//g" %%i Я смог заставить sed менять все wxT(...) на #wxT(...)#, затем удаляю #wxT( и )# Не могу заставить работать так: меняем wxT("...") на #wxT("...")# затем меняю #wxT(" на " и ")# на " Надо чтобы, например: Код: [Выделить] echo wxT(")") | sed 's/wxT([^)]*)/#/g;/#wxT(/s/)#//g;s/#wxT(//;s/.c_str()//g' вернуло ")" Подскажите, пожалуйста, как (можно любой синтаксис, как для cmd так и для bash)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2013, 14:44
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
перл - читаем стд. вход, убираем одну из ф-ций, заливаем в стд. вывод while(<>){ s/wxT\("[^"]*"\)//g; print; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2013, 16:07
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
пробую иначе Код: sql 1. получаю #wxT("1+2+3 (6)"); _("bingo (ya)")# а хочется #wxT("1+2+3 (6)")#; _("bingo (ya)") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2013, 16:58
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
в итоге нечто рабочее: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2013, 17:26
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
maximandв итоге нечто рабочее: Код: sql 1. а чего сразу матч на пустую строку не менять s/.c_str()//g - как тут? сразу без зарешеченного минуса? s/wxT(\(.[^\"]*\)\")/\1\"/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2013, 17:35
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
или дефайном. Это же С-С++? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2013, 17:48
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
Vladimir Baskakov, Спасибо и точно. Код: sql 1. вполне справляется за редким исключением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2013, 18:05
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
s/wxT(\s*\(\"[^\"]*\"\\s*))/\1/ Или даже так. Обе кавычки - в захватываемое скобками выражение,между скобкой и кавычкой с двух сторон - возможные пробельные цепочки. Для надежности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.04.2013, 19:25
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
Vladimir Baskakov, ещё +100500 спасибов! Вот синтаксис для виндового сида: Код: sql 1. Это выражение ошибается только на строках с маскированными кавычками типа: Код: sql 1. и не могу заставить первую кавычку учитывать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.04.2013, 09:43
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
maximand, следующий скрипт Код: plaintext 1. 2. на первый взгляд правильно жует вот такой тест. Код: plaintext 1. 2. 3. 4. 5. Символы 1...8 в нормальных текстах не встречаются..... их можно использовать как временную замену эскейп - последовательностей.... желания упаковывать в однострочник - нет, только глаза ломать, perl - никак не менее удобен, те же регекспы в нормальном, с процедурами, переменными и циклами языке. sed взят из виндового несвежего git-a. перл и тактикль - там же, рядом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.04.2013, 09:51
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
html_+= wxString::Format( wxT( "\" text=\"%s\" " ) => html_+= wxString::Format("\" text=\"%s\" " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.04.2013, 18:36
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
Владимир, Спасибо. Я уже немного подразобрался с рег выражениями. По sed'у всё логично, но есть странное но. Код: sql 1. выдаёт пустую строку вместо ожидаемого wxT( "_2\"3"), хотя эхо нормально выводит. Поэтому мне вообще не поменять \" на хоть что угодно. Ерунда какая-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.04.2013, 10:00
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
Вам надо разобраться, как вставлять скобки слэши и кавычки в качестве элементов строки - аргумента echo. Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.04.2013, 10:04
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
Не надо беспокоится, сделайте тестовый файл и тестовый sed - скрипт. И начинайте жить. И станет счастье. (вопрос о том, на зачем он вообще нужен, sed, оставим без рассмотрения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.04.2013, 13:31
|
|||
|---|---|---|---|
|
|||
sed замена |
|||
|
#18+
Владимир, Спасибо за советы. Победа! Ваш шаблон + мой цикл благополучно обрабатывает тестовый файл. Код: sql 1. Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=16&mobile=1&tid=1341841]: |
0ms |
get settings: |
6ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 198ms |
| total: | 451ms |

| 0 / 0 |
