Голова и кошка не распознают текстовые файлы Microsoft Excel
У меня есть большой файл.xls с 53760 строками и 19 столбцами. Я сохранил его как текст с разделителями табуляции, чтобы предварительно обработать его с помощью инструментов командной строки и загрузить его в R позже. Тем не менее, когда я бегу
head myfile.txt
мой терминал показывает все строки сразу, как
cat myfile.txt
Команда должна делать. Но если я бегу
cat myfile.txt | wc -l
я получаю ответ 0. Более интересно, что R может читать мои данные без помощи какого-либо дополнительного пакета и идентифицировать все 53760 строк и 19 столбцов. Я полагаю, что это проблема Excel, но я не могу понять, что это такое.
Я использую Mac OS 10.9.1, Microsoft Excel для Mac 2011, bash 4.2 и iTerm 2 1.0.0.20130622
1 ответ
В Linux и Mac OS зайдите в vi, выполните следующую подстановку и снова сохраните файл, и это должно работать для вас,
$ vi myfile.txt
:%s/^V^M/^V^M/g
:wq
где ^V^M означает тип Ctrl+V, затем Ctrl+M и завершает каждую строку возвратом.
Это должно поставить нормальные символы конца строки UNIX в конце строк значения, разделенных запятыми в Excel. Вы можете даже создать сценарий vi, чтобы автоматизировать его, если вы делаете это много, а затем вызвать этот сценарий vi из сценария bash, спрятать все это несоответствие системы и назвать его dos2unix.:-)
Чтобы создать скрипт vim в dos2unix.vim, сделайте следующее:
Создать скрипт
$ vi -w dos2unix.vim myfile.txt
Тщательно введите последовательность из 3 строк, как указано выше.
Теперь примените этот скрипт к любому файлу с
$ vi -s dos2unix.vim anyfile.txt
И завернуть все это в скрипт bash или даже псевдоним, как в, зависит от вас
alias dos2unix='vi -s ~/.vimscripts/dos2unix.vim '
Чтобы иметь возможность делать это, как это было встроено, потому что теперь это будет - просто создайте папку с именем ~/.vimscripts и поместите туда созданный выше файл сценария.