powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Объединить две строки
8 сообщений из 8, страница 1 из 1
Объединить две строки
    #33780236
Lamernix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имееться текст такого плана
В тексте есть две строки
Код: plaintext
1.
end procedure
;
(эти две строки повторяются много раз)
Никак не могу придумать как сделать что бы в конечном итоге получилось так
Код: plaintext
end procedure;
...
Рейтинг: 0 / 0
Объединить две строки
    #33780315
Фотография Oerr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант на вскидку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
root@host# cat >testfile
end procedure
;
mytextfile
others data
end procedure
;
end procedure
root@host# cat testfile |sed 's/end\ procedure/end\ procedure;/g'
end procedure;
;
mytextfile
others data
end procedure;
;
end procedure;
root@host# cat testfile |sed 's/end\ procedure/end\ procedure;/g'|grep -v "^;$"|sed 's/\;\;/\;/g'
end procedure;
mytextfile
others data
end procedure;
end procedure;
Но при таком решении есть ряд ограничений.

http://surgutnet.ru
...
Рейтинг: 0 / 0
Объединить две строки
    #33780326
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
perl -pe 'undef $/; s/end procedure\n;/end procedure;/g' SRC_FILE
...
Рейтинг: 0 / 0
Объединить две строки
    #33780516
Lamernix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за проявленное внимание, но что-то у меня ни один скрипт не работате. :(
...
Рейтинг: 0 / 0
Объединить две строки
    #33780552
bla-bla-bla-2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а исходный текст поди в win или dos кодировке... ?
...
Рейтинг: 0 / 0
Объединить две строки
    #33780576
Lamernix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри, я ступил - все работает.
...
Рейтинг: 0 / 0
Объединить две строки
    #33781144
Lamernix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще вопрос теперь я выбираю конструкцию создания процедур следующим скриптом
Код: plaintext
awk '/create procedure/,/end procedure;/{print}' all > procedure.sql
.
Однако оказалось, что в исходном файле имеются конструкции написанные заглавными буквами. Можно конечно написать и так
Код: plaintext
awk '/CcRrEeAaTtEe PpRrOoCcEeDdUuRre/,/EeNnDd PpRrOoCcEeDdUuRrEe;/{print}' all > procedure.sql
. Но наверняка есть более элегантный (профессиональный) способ. Ведь у grep есть параметр -i. Может и awk что подобное имеется.
...
Рейтинг: 0 / 0
Объединить две строки
    #33783866
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LamernixЕще вопрос теперь я выбираю конструкцию создания процедур следующим скриптом
Код: plaintext
awk '/create procedure/,/end procedure;/{print}' all > procedure.sql
.
Однако оказалось, что в исходном файле имеются конструкции написанные заглавными буквами. Можно конечно написать и так
Код: plaintext
awk '/CcRrEeAaTtEe PpRrOoCcEeDdUuRre/,/EeNnDd PpRrOoCcEeDdUuRrEe;/{print}' all > procedure.sql
. Но наверняка есть более элегантный (профессиональный) способ. Ведь у grep есть параметр -i. Может и awk что подобное имеется.

конечно есть

это системная переменная IGNORECASE

Код: plaintext
1.
awk 'BEGIN{IGNORECASE=1}/create procedure/,/end procedure;/{print}' all > procedure.sql
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Объединить две строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]