Как преобразовать CSV-файл в CSV UTF-8 (разделенный запятыми) с помощью команды в терминале Linux?

#linux #shell #unix #terminal

Вопрос:

У меня уже есть электронная таблица, сохраненная в каталоге с именем «status.csv». Как я могу увидеть, какой тип csv, и изменить его на CSV UTF-8 (через запятую), используя только терминал?

Комментарии:

1. В этом вопросе не так много деталей. Какое приложение вы использовали для создания этой электронной таблицы? Что file status.csv выводит? Что заставляет вас думать, что файл еще не в формате CSV?

2. Если вы хотите преобразовать одну кодировку символов в другую, используйте iconv .

Ответ №1:

Если вам нужно преобразовать ; разделители в запятые, вы можете использовать sed (при условии, что данные не содержат никаких | символов):

 sed -i "s|;|,|g" status.csv
 

Флаг -i означает редактирование на месте. Вы можете удалить его при тестировании.

Если данные содержат один или несколько символов канала, вы можете использовать другой разделитель для sed , как в следующей команде:

 sed -i "s@;@,@g" status.csv
 

Команда , которая чаще всего используется для проверки типа файла, такова file , но она отображается только ASCII text для .csv файла AFAICS. Других я не знаю.