Я обычно импортирую данные из CSV-файлов в MySQL, но мой поставщик данных оставляет пустые записи как "", поэтому мне нужно заменить "" на "\N". Это достаточно просто с помощью сценария, как
for csvfile in *.csv
do
sed -i -e 's/^,/\\N,/' -e 's/,$/,\\N/' -e 's/,,/,\\N,/g' -e 's/,,/,\\N,/g' $csvfile
done
Тем не менее, у меня есть CSV-файл с запятыми, поэтому импорт не удается. Я получил файл с разделителями табуляции и попытался
for txtfile in *.txt
do
sed -i -e 's/^\\t/\\N\\t/' -e 's/\\t$/\\t\\N/' -e 's/\\t\\t/\\t\\N\\t/g' -e 's/\\t\\t/\\t\\N\\t/g' $txtfile
done
Но все равно не получается (насколько я могу судить, скрипт не добавляет "\N"). Когда я открываю файл с разделителями табуляции в Vim и набираю :set list
создается впечатление, что вкладки хранятся вместо «^ I». Я попытался заменить "\t" на "\^ I", но не добавил необходимые символы "\N" NULL.
Есть идеи? Спасибо!