awk для текстовой обработки файла cvs

У меня есть несколько больших текстовых файлов *.cvs, которые выглядят так:

    Word,Tag,Lemma
    Off,aa,off
    short,aa,short
    and,sfg3eþ,and
    tall,sþghen,tall
    deers,aþ,deer
    in,never,in
    Africa,nc,Africa
    frv.,aa,frv.
    ---,ta,---
    ,,
    All,nhfn,all
    allowed,lhfnsf,allow
    personell,c,personell
    aggr.,lheþsf,aggr.
    with,aþ,with
    23,ta,23
    as.,nvfn,as.
    sillable.,lheþsf,sillable.
    ,,
    Á,aþ,á 

Мне нужно обработать этот файл так, чтобы первый столбец был помещен в список следующим образом:

    {[Off short and tall deers in Africa frv],[All allowed personnel aggr. with 23 as syllable.],[Á......],...n]}

В самом конце должно быть: ]}

Что я пробовал:

    awk 'BEGIN {FS=",";print"{["} /",,"/ {print"],["} END {print"]}"}' 079.cvs

Который просто печатает: {[ ]}

Я также нашел это:

    cat 080.csv | cut -d ',' -f3 >>D.txt

Что на самом деле весьма полезно:

    Off
    short
    and 
    tall
    ....

Но на самом деле это «глубокий» файл и отсутствуют элементы списка.


person Armann Sigurðsson    schedule 08.11.2015    source источник
comment
Нехорошо не принимать ответ, чтобы иметь возможность удалить свой вопрос. Если вы воспользовались моей помощью, будьте вежливы. См. удаленный вопрос: Создание числовых последовательностей.   -  person fedorqui 'SO stop harming'    schedule 02.06.2017


Ответы (1)


Обновлять

awk -F, 'NR==1{printf "{["; next} /^--/||!$1{if(a)printf "],["; a=0; next} {printf "%s ",$1; a=1} END{printf "]}"}' file
{[Off short and tall deers in Africa frv. ],[All allowed personell aggr. with 23 as. sillable. ],[Á ]}
person bian    schedule 08.11.2015
comment
Это очень хорошо, он выводит большую часть файла, но заканчивается следующим: awk: странное преобразование printf % номер входной записи 1303, исходная строка файла 079.csv номер 1 awk: недостаточно аргументов во входной записи printf(20%) номер 1303, файл 079.csv исходная строка номер 1 - person Armann Sigurðsson; 08.11.2015
comment
Вы проверяете 079.csv 1303 строки? - person bian; 08.11.2015
comment
Я опоздал, чтобы опустить самый большой в моем предыдущем комментарии. Да, он обрабатывает первые 1303 строки. В файле 331765 строк. - person Armann Sigurðsson; 08.11.2015
comment
Я думаю, что это проблема с полем, код /^--/||!$1 , это поле не соответствует. вы можете обновить исходный контент - person bian; 08.11.2015
comment
строка 1303:'20%,ta,20%' --строка 1304:',,,,,' --другой файл, строка n:'30--35%,ta,30--35%' --› останавливается на этой линии. - person Armann Sigurðsson; 08.11.2015
comment
Это на самом деле печатает сверхурочно окончание предложения: foo...n . ],[ --что может быть полезно, но мне нужно: foo...n.],[Foo foo - person Armann Sigurðsson; 08.11.2015
comment
Глядя на содержимое файлов, лучше использовать /^,,/ для сопоставления - person Armann Sigurðsson; 09.11.2015