dos2unix: Обнаружен двоичный символ, пропускается двоичный файл - PullRequest
0 голосов
/ 13 декабря 2018

В настоящее время у меня возникает проблема, из-за которой происходит сбой моего сценария при попытке выполнить команду dos2unix для файла.

Вот что у меня в сценарии:

dos2unix -n data/file data/tmp_file
dos2unix: Binary symbol found at line 21107611
dos2unix: Skipping binary file data/input/DATA.txt
mv -f data/tmp_file data/input/DATA.txt
mv: cannot stat ‘data/tmp_file’: No such file or directory

Iперешел на строчку вопрос и у меня тут есть "^ @".Что это такое и как заставить мой скрипт работать с помощью команды dos2unix?

{128392938928392838123129381298398129^@ 

Спасибо

1 Ответ

0 голосов
/ 13 декабря 2018

^@ - это представление Vim нулевого байта;ср.:help <Nul>

Обычные текстовые файлы не содержат нулевых символов.Двоичные файлы обычно содержат много нулевых символов, и они будут повреждены, если преобразуются целиком;вот почему dos2unix отказывается конвертировать его.

У вас есть несколько вариантов:

  • Этот нулевой символ мог быть вставлен случайно или является мусором.Отредактируйте файл (в Vim) или создайте его заново.Если вы используете Vim, вы также можете выполнить преобразование в нем (через :help ++ff, например :w ++ff=unix).Инструменты командной строки, такие как dos2unix, по-прежнему используются для неинтерактивных вызовов.
  • Этот нулевой символ принадлежит ему.Команда dos2unix имеет опцию -f|--force для принудительного преобразования.
...