Пропустить тип разделителя |, в строке во время вывода SQL

Я запускаю отчет по базе данных sqlite3.

Команда:

sqlite3 db.sqlite3 "select job_title, job_url, regions.region_name from job_results join regions on (regions.i_region=job_results.region_id)" > output.csv

Это создает вывод с разделителями | и ,. Вот почему иногда в первой строке, поскольку это заголовок листинга, тип разделителя находится в заголовке, поэтому, когда я открываю файл с помощью LibreOffice или Excel, часть первой строки в данном столбце теперь включена. вторые 2 и все остальные элементы отключены в этом столбце.

Мне нужно знать, как открыть файл output.csv в Excel или LibreOffice и не анализировать первую строку, потому что список включил тип разделителя в заголовок своего листинга. Итак, я хотел бы знать, как изменить «разделитель» или символы | или , в первой строке файла csv только для решения этой проблемы. Я попытался использовать tr '\|' '', чтобы избавиться от этих разделителей, но он заменяет все разделители, которые мне нужно сохранить.

Благодарю вас!


person Debug255    schedule 11.05.2016    source источник
comment
Вы не можете использовать As? Select job_title As \"Job | , Title\" так что оно заключено в кавычки и не будет разобрано как разделитель?   -  person SierraOscar    schedule 11.05.2016


Ответы (3)


Если вы хотите удалить все символы | и , из первой строки файла (output.csv), используйте приведенную ниже команду sed и перенаправьте вывод в готовый файл (finish.csv):

sed "1s/[|\,,]//g" output.csv > finish.csv

Пример исходных данных (output.csv):

ewqweqwe|qwew,eqwe|qwew,ewqe|qweqw,wqeq|
gggggggg|fgggggggg|ggggggggg|gsefsfsfdf|
eqweqweq|aeweqweqw|aweewqweq|adqweqweqe|

Пример измененных данных (finish.csv):

ewqweqweqweweqweqwewewqeqweqwwqeq
gggggggg|fgggggggg|ggggggggg|gsefsfsfdf|
eqweqweq|aeweqweqw|aweewqweq|adqweqweqe|

ХТН

person tale852150    schedule 11.05.2016
comment
Что означает HTH, в StackOverflow обычно не принято подписывать ваши ответы, потому что они подписаны вашим чутьем - person andlrc; 12.05.2016
comment
Спасибо за разъяснения :-) - person andlrc; 12.05.2016

Чтобы удалить все | и , в первой строке, вы можете подключить этот sed к вашей команде sqlite3:

sqlite3 db.sqlite3 "your_query" | sed '1s/[,|]//g' > output.csv
person SLePort    schedule 11.05.2016

Чтобы получить правильный CSV-файл (даже с правильными кавычками, если в каком-то поле есть запятые), скажите sqlite3 создать CSV-файл:

sqlite3 -csv db.sqlite3 "select ..." > output.csv
person CL.    schedule 12.05.2016