|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Valentin Davydov 2:5020/400 09 Aug 2007 15:21:46 To : Andrew Lutov" Subject : Re: Обработка текстового файла -------------------------------------------------------------------------------- > From: "Andrew Lutov" <andrew_l @ newmail.ru> > Date: Thu, 09 Aug 2007 14:42:08 +0400 > > AL>> Чем можно собрать такое > AL>> " > AL>> 25.07.07 11:16:07 Сахалинская > AL>> область_Южно-Сахалинск > AL>> МГ 74242123456 3 1 19-65 > AL>> " > AL>> в одну строку, чтобы выглядело вот так: > AL>> " > AL>> 25.07.07 11:16:07 Сахалинская область_Южно-Сахалинск МГ 74242123456 3 >1 > AL>> 19-65 > AL>> " > AL>> Кавычек, естественно, нет и "кривые" строки перемежаются нормальными. > > EG> Теоретически sed'ом, но сначала четкий критерий "кривости" строки в > EG> студию. > >Строка оказывается разбита на несколько (в примере на три строки). >Пример выше. Т.е. если "Hаправление" состоит HЕ из одного слова, >то режется по пробелу с заменой пробела на перевод строки. > >Формат строки стандартный: [номер], дата, время, направление, >межгород/международка, куда звонили, продолжительность, ХЗ, цена. >Т.е. перед датой может быть номер, с которого был звонок, но он >проставляется только в первой строке. Остальные строки, относящиеся >к данному номеру, сам номер уже не содержат. > >Это входящий файл, который присылают. Дата и время всегда в одной строке? Если да, то просто подклеивать к накопленным данным все строки подряд (через пробелы), а при получении следующей строки с датой и временем, а также в конце файла - сбрасывать накопленное на выход. а авке это будет примерно так: BEGIN{x=""; dt="[0-3][0-9]\.[01][0-9]\.[09][0-9] [012][0-9]:[0-5][0-9]:[0-5][0-9] "} $0~dt&&NR>1{print x; x=$0; next} {x=x " " $0} END{print x} Вал. Дав. --- ifmail v.2.15dev5.4 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/33046bc2c0177.html, оценка из 5, голосов 10
|