Обработать .csv из командной строки

Andrew Bondarenko bond на relex.ru
Вт Авг 10 17:22:35 BST 2010


On 08/10/2010 08:17 PM, Andrew Bondarenko wrote:
> On 08/10/2010 08:02 PM, Людмила Бандурина wrote:
>> Здравствуйте,
>>
>> Посоветуйте, пожалуйста, способ обработать .csv
>>
>> Имеется:
>>
>> "name1","name_eng1","code1","shortCode1"
>> "name2","name_eng2","code2","shortCode2"
>>
>> И так далее, таких строк очень много
>>
>> Нужно получить:
>>
>> "name1", "name2", "name3", "name4", "name5", "name6", "name7", "name8",
>> "name9", "name10", "name11", "name12", "name13", "name14", "name15",
>> "name16",
>>
>> И так далее - по 8 в строке, только первое поле из имеющихся в .csv
>> Или хотя бы в одну строку - но только первое поле.
>> Кавчки есть во входном файле, они должны быть и в выходном файле.
>>
>> Я пока совсем не знаю bash, даже на таком уровне...
>>
>
> Дак це ж гавка! =)
>
>
> awk -F',' ' BEGIN { current=1 } { if (current<8) { printf $1"," ;
> current++ ; } else { print $1"," ; current=1 ; } } ' infile
>
>
> где infile, как Вы понимаете, входной файл
>
>

хм... присмотрелся к "Нужно получить", у Вас там пробелы ещё, если 
синтаксис гавки непонятен, то это будет так:

awk -F',' ' BEGIN { current=1 } { if (current<8) { printf $1", " ; 
current++ ; } else { print $1", " ; current=1 ; } } ' infile


а что бы "хотя бы в одну строку" - это совсем просто:

awk -F',' ' { printf $1", " } ' infile

Всегда можете обратиться за пояснениями ;)




Подробная информация о списке рассылки ubuntu-ru