- sed, Andrey Mitrofanov, 22:07 , 09-Июл-13 (1)
> Подскажите правильное решение.Про правильное не знаю, вот написанное быстро и работающее, вроде |awk -v RS=\" -v ORS=\" 'NR%2==0{gsub(";","--")}{print}' На sed-е можно, но муторно. Я пропускаю.
- sed, sh, 16:36 , 10-Июл-13 (3)
>> Подскажите правильное решение. > Про правильное не знаю, вот написанное быстро и работающее, вроде > |awk -v RS=\" -v ORS=\" 'NR%2==0{gsub(";","--")}{print}' > На sed-е можно, но муторно. Я пропускаю.О, то что надо. Че я сразу awk не применил. Не люблю его как-то... медленновато работает с большимм объемами данных.
- sed, sh, 16:43 , 10-Июл-13 (4)
>>> Подскажите правильное решение. >> Про правильное не знаю, вот написанное быстро и работающее, вроде >> |awk -v RS=\" -v ORS=\" 'NR%2==0{gsub(";","--")}{print}' >> На sed-е можно, но муторно. Я пропускаю. > О, то что надо. Че я сразу awk не применил. Не люблю > его как-то... медленновато работает с большимм объемами данных.Поторопился. Немного не то. Заведомо неизвестно в каком поле встречается знак (;), если только во-втором, тут да все просто :-)
- sed, sh, 16:58 , 10-Июл-13 (5)
>>> Подскажите правильное решение. >> Про правильное не знаю, вот написанное быстро и работающее, вроде >> |awk -v RS=\" -v ORS=\" 'NR%2==0{gsub(";","--")}{print}' >> На sed-е можно, но муторно. Я пропускаю.sorry for noise Работает все гуд. Только не пойму смысл NR%2==0.
- sed, Andrey Mitrofanov, 09:54 , 11-Июл-13 (6)
>>> Про правильное не знаю, вот написанное быстро и работающее, вроде >>> |awk -v RS=\" -v ORS=\" 'NR%2==0{gsub(";","--")}{print}' > Работает все гуд. Только не пойму смысл NR%2==0.Ну, обясню я тебе, ты скажешь "здорово!", допустим, но ничему ж не научишься. Отсюда вопрос, стоит ли у нас задача чему-нибудь научить того, кто спрашивает и других участников (в других вопросам - самим научиться), или же тут маркет халявных скрипт-арбайтеров? И вопрос№2, является ли принуждение к миру^Wсамостоятельному, если не решению задачи, то хотя бы, _прочтению и пониманию предоставленного решения, методом этого самого обучения? А давайте это обсудим?!!
- sed, sh, 18:34 , 11-Июл-13 (7)
>[оверквотинг удален] >> Работает все гуд. Только не пойму смысл NR%2==0. > Ну, обясню я тебе, ты скажешь "здорово!", допустим, но ничему ж не > научишься. > Отсюда вопрос, стоит ли у нас задача чему-нибудь научить того, кто спрашивает > и других участников (в других вопросам - самим научиться), или же > тут маркет халявных скрипт-арбайтеров? > И вопрос№2, является ли принуждение к миру^Wсамостоятельному, если не решению задачи, > то хотя бы, _прочтению и пониманию предоставленного решения, методом этого самого > обучения? > А давайте это обсудим?!!Давайте, и давайте не будем представляться умнее планеты всей :-) Смысл NR%2==0 знаю и на инглише читать тоже умею к примеру вот отсюда http://www.gnu.org/software/gawk/manual/html_node/Very-Simpl... Немного непонятно поведение awk касательно моего случая с установленным NR%2==0. И да, разве этот мой пост не является опровержением ваших рассуждений: > Отсюда вопрос, стоит ли у нас задача чему-нибудь научить того, кто спрашивает > и других участников (в других вопросам - самим научиться), или же > тут маркет халявных скрипт-арбайтеров? а?
- sed, Andrey Mitrofanov, 22:11 , 11-Июл-13 (8)
> Давайте, и давайте не будем представляться умнее планеты всей :-) > Смысл NR%2==0 знаю > Немного непонятно поведение awk касательно моего случаяОбрати очи в сторону >>-v RS=\" -v ORS=\"<<. > И да, разве этот мой пост не является опровержением ваших рассуждений: Не-а. Я тебе рассказал "страшный секрет" второй половины заклинания. Теперь ты напряжёшься, прочитаешь-таки, как там и что, и через пару дней забудешь всё. >> Отсюда вопрос, стоит ли у нас задача чему-нибудь научить того, кто спрашивает > а? Понял, что нет.
- sed, John, 22:17 , 09-Июл-13 (2)
> Привет, > Необходимо парсить csv-файлы, т.е. с помощью sed вывести определенные поля. В качестве > разделителя выступает точка с запятой (;). Проблема возникает, когда в поле > встречается знак ;. Такие поля взяты в двойные кавычки. Надо в > таких полях ; заменять на другой знак, не являющийся метасимволом. > Например: aa;"bb ; cc";dd -> aa;"bb -- cc";dd > Пробую,например, заменить > echo "aa;\"bb ; cc\";dd" | sed -E '/".*"/ s/;/--/g' > на выходе aa--"bb -- cc"--dd > Подскажите правильное решение.А еще поле может содержать двойные кавычки как значение(а может и не один символ, а несколько). IMHO: CSV - штука совсем не простая. Я бы использовал Perl. На http://search.cpan.org/ в изобилии модулей, _корректно_ обрабатывающих CSV-файлы.
|