Страницы

Поиск по вопросам

четверг, 6 июня 2019 г.

Как склеить строки ?

Вопрос в заголовке. Только не все строки. Про tr -d '
' мне известно. Пример: abc ; fgh ; " qwe rty " ; " asd " ; end В конвейере нужно превратить в: abc;fgh;"qwe rty";"asd";end
Другими словами, сделать нормальный CSV из вывода, где поля в отдельных строках, разделитель полей ';' тоже в отдельной строке и поля, которые могут содержать
, обрамлены строками '"'. Последний
надо заменить на
Для программы (на Си?) я бы сформулировал задачу просто: убрать все
вне "...", а внутри "..." убрать первый сразу за '"'. (на Си писать не надо, если "однострочник" не получится, то на нем сам как-нибудь напишу). ... Пока замер на проблеме, что я никак не могу заставить работать что-нибудь типа s/
;
/;/ ни в sed, ни в perl (т.е. работать с выражением для 2-х строк) P.S. python 2.4 тоже подойдет.


Ответ

perl -0777 -lpe 'BEGIN{$\="
"}s#
;
#;#gsm;s#;"
#;"#gsm'

Комментариев нет:

Отправить комментарий