Анализ файла CSV в UNIX, но также обработка данных в "" - PullRequest
3 голосов
/ 29 мая 2011

Я пытаюсь проанализировать файл CSV в UNIX, используя AWK или сценарии оболочки. Но я столкнулся с проблемой здесь. Если данные находятся в кавычках (","), то я хочу заменить запятую (,) пробелом и удалить кавычки. Кроме того, такие данные могут встречаться несколько раз в одной записи.

Например: рассмотреть этот ввод

20, Манчестер, "Барклайс, Лига", хуг, 123, "95, некоторые данные",

вывод должен быть следующим

20, Манчестер, Barclays League, XYZ, 123,95 некоторые данные,

Как это можно сделать b базовыми командами или сценариями UNIX. Пожалуйста, помогите мне в этом ....

Ответы [ 2 ]

1 голос
/ 29 мая 2011
<input.csv python -c \
'import csv,sys;f=csv.reader(sys.stdin);print '\
'("\n".join(",".join(entry.replace(",", " ") for entry in line) for line in f))'
0 голосов
/ 29 мая 2011

Вот как вы это делаете, используя sed в оболочке:

sed -i '.orig' -e ':a' -e 's/^\([^"]*\)"\([^,"]*\)"\(.*\)$/\1\2\3/g' \
-e 's/^\([^"]*\)"\([^,"]*\),\([^"]*\)"\(.*\)$/\1"\2 \3"\4/;ta' file.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...