Вопрос в заголовке.
Только не все строки. Про 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'
Комментариев нет:
Отправить комментарий