Голова и кошка не распознают текстовые файлы 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, сделайте следующее:

  1. Создать скрипт

    $ vi -w dos2unix.vim myfile.txt

  2. Тщательно введите последовательность из 3 строк, как указано выше.

  3. Теперь примените этот скрипт к любому файлу с

    $ vi -s dos2unix.vim anyfile.txt

И завернуть все это в скрипт bash или даже псевдоним, как в, зависит от вас

alias dos2unix='vi -s ~/.vimscripts/dos2unix.vim '

Чтобы иметь возможность делать это, как это было встроено, потому что теперь это будет - просто создайте папку с именем ~/.vimscripts и поместите туда созданный выше файл сценария.

Другие вопросы по тегам