У меня много больших файлов данных. Разделителем между полями является точка с запятой. Однако я обнаружил, что в некоторых полях есть точки с запятой, поэтому я не могу просто использовать точку с запятой в качестве разделителя полей.
В следующем примере есть 4 поля, но awk видит только 3, потому что '1' в поле 3 удаляется регулярным выражением (которое включает '-', потому что некоторые числовые данные являются отрицательными):
echo '"This";"is";1;"line of; data"' | awk -F'[0-9"-];[0-9"-]' '{print "No. of fields:\t"NF; print "Field 3:\t" $3}'
No. of fields: 3
Field 3: ;"line of; data"
Конечно,
echo '"This";"is";1;"line of; data"' | awk -F';' '{print "No. of fields:\t"NF}'
No. of fields: 5
решает эту проблему, но считает последнее поле как два отдельных поля.
Кто-нибудь знает решение этой проблемы?
Спасибо!
Matthijs