У меня есть файл Excel, показанный на рисунке ниже, и он доступен для скачивания.здесь. Мне нужно извлечь переменные в элементе (столбец B) и значения в столбце G. Для начала я попытался сохранить файл Excel как файл .csv с разделителями-запятыми, но когда я проверяю количество строк в терминале Mac OS X, он сообщает мне, что файл CSV состоит всего из одной строки:
$ wc -l Layout.csv
0 Layout.csv
Есть ли у вас идеи, почему это может быть так?
Вот CSV-файл, открытый в текстовом редакторе, в котором видно, что он состоит из нескольких строк:
Вы можете скачать этот файлздесь.
решение1
После просмотра вашего CSV-вывода проблема ясна: вы указали Excel использовать окончания строк CR, вероятно, потому, что он сообщил вам, что они в стиле "Macintosh". Это сильно устаревшая информация, которая не соответствует действительности уже более десятилетия.
Естьтри основных стиля окончания строки:
LF: Стиль, используемый Unix и всеми его основными производными,включаяMac OS X.
CR: Стиль, выбранный "классической" Mac OS, от которого Apple отказалась в 2001 году с переходом на Mac OS X. Поскольку классическая Mac OS — единственная популярная ОС, которая когда-либо использовала этот стиль, он почти никогда не встречается на практике. Файл CSV, на который вы ссылаетесь, — один из таких редких примеров.
CR+LF: Стиль завершения строки DOS/Windows. Технически этот стиль более соответствует истории ASCII, и поэтому «более правильный», но его редко можно увидеть за пределами мира Microsoft.
Лучший способ исправить это — заставить Excel использовать окончания строк LF, что является родной формой для OS X, что сделает wc
и другие инструменты командной строки Unix счастливыми. Но это выходит за рамки этого форума. (ПопробуйтеСупер пользователь(Если вы действительно не можете разобраться с этим самостоятельно.)
Вот способ исправить это с помощью командной строки Unix:
$ tr '\r' '\n' < Layout.csv > Layout-LF.csv
(Это одна из тех проблем, у которой существует столько же различных решений, сколько и людей, их предлагающих.)