Предполагая, что у нас есть следующая запись {(XXX1),(XXX2)},whatever
Что я хочу, извлеките информацию на основе следующего правила, предпочтительно с помощью grep: , если {} содержит меньше или равным двум UNIQUE элементам, те, которые находятся внутри(), затем сохраняют (оба) из них, в противном случае удаляют всю строку. В качестве следующего шага, я хочу извлечь значения в пределах(), и, наконец, написать оставшиеся строки в следующем виде: XXX1,XXX2,whatever
Как очистить файл CSV с помощью команды «grep»
ОБНОВЛЕНИЕ:
Для следующего ввода:
{(XXX1),(XXX2)},whatever,unique=2
{(XXX1),(XXX1),(XXX1),(XXX2)},whatever,unique=2
{(XXX1)},whatever,unique=1
{},whatever,unique=0
{(XXX1),(XXX2),(XXX3),(XXX4)},whatever
я должен получить следующий вывод:
XXX1,XXX2,whatever,unique=2
XXX1,whatever,unique=1
Вы не можете (надежно) работать с данными csv с помощью grep, поскольку записи cvs могут охватывать несколько строк. Даже если у вас их нет, grep, вероятно, не подходит для определения того, находится ли какая-либо данная запятая (или что бы то ни было ваш разделитель) внутри записи или ее разделение. –
Хорошо, спасибо! Что бы вы мне порекомендовали? – user706838
Существует http://www.aboutwilson.net/csvgrep/, но я не смотрел, что он может и чего не может сделать. Помимо этого, используйте некоторый правильный синтаксический анализатор CSV и сценарист/сериализатор и реализуйте над ним логику. Лично я бы проверял на рубиновые драгоценные камни, но выбор языка, вероятно, зависит от того, что вы знаете. –