Вкладка с разделителями-запятыми в UNIX - один вкладыш?

0

У меня есть файл с разделителями табуляции (файл MySQL Out).

Я хочу преобразовать его в файл CSV. У меня все работает, за исключением замены NULL на ничего или пробелы.

У меня есть: sed -e 's/^/"/; s/$/"/; s/\t/","/g;' < file.csv > file1.csv

Как заменить NULL в одной строке.

Не работает следующее.

sed -e 's/NULL//; s/^/"/; s/$/"/; s/\t/","/g;' < file.csv > file1.csv

Приветствуется любой ввод.

Спасибо!

  • 3
    Я чувствую себя обязанным отметить, что почти никогда не бывает хорошей идеей попытаться сделать это. Люди всегда думают: «О, это файл [CT] SV, его тривиально разобрать», и это редко случается. Буквальные вкладки будут в кавычках, но вы все равно конвертируете их в запятые. Кроме того, существующие запятые в файле не заключаются в кавычки, поэтому у вас будет больше полей, чем нужно
  • 0
    Не могли бы вы рассказать, как он не может удалить NULL? Может быть, дать пару до и после? Дело не просто в пропущенном «г», не так ли?
Показать ещё 4 комментария
Теги:
replace
sed

2 ответа

0

Разве вы не забыли поставить там 'g'-модификатор?

sed -e 's/NULL//g; s/^/"/; s/$/"/; s/\t/","/g;' < file.csv > file1.csv
0

вы не можете сделать это с помощью sed.

#!/usr/bin/env python

import sys, csv

reader = csv.reader(open(sys.argv[1], 'rb'), delimiter="\t", escapechar="\\")
writer = csv.writer(open('output.csv', 'wb'))
for row in reader:
    writer.writerow(row)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню