Это довольно странно, если использовать документ .txt, отправленный другом из Windows, я считаю, что нашел странный пробел.
Если я запускаю cat file
, персонаж появляется как ��
Кроме того, я бегал if [[ " " = " " ]] ; then echo yes ; fi
, и он не давал мне код успеха. (Персонаж однажды теряет свое свойство в Stack Exchange, поэтому его запуск даст вам код успеха)
Редактировать Файл был в iso-8859-1 и не в кодировке utf-8.
Используя решение Серга, я смог преобразовать его в utf-8
Так как о кодировании файла сообщили как iso-8859-1
, можно преобразовать кодирование файла с помощью iconv -f old-encoding -t new-encoding inputfile > outputfile
Можно использовать dos2unix
. От man dos2unix
:
dos2unix - DOS/Mac to Unix and vice versa text file format converter
, Например, можно сделать:
dos2unix -n file.in file.out
Теперь file.out
будет в формате UNIX. dos2unix
может преобразовать окончания строки окон и кодировку к формату UNIX, таким образом, можно использовать его для обоих случаев. Если это не установлено, можно установить его:
sudo apt-get install dos2unix
Предположение, которое я имею, является окончаниями строки.
использование Windows \r\n
, в то время как *использование UNIX \n
.
, Вероятно, что Вы видите, эти \r
символы, так как у них нет значения для *UNIX.
нет никакой проблемы, открывающей текстовый файл в Windows с \n
окончания, так как Windows преобразовывает его автоматически в \r\n
(только в Текстовом режиме), в то время как *UNIX не имеет такой функции.
Символ, который Вы видите, походит на неразрывное пространство. Это - число символов 160 в iso-8859-1 и unicode. В некоторых раскладках клавиатуры это может быть введено с помощью высокий звук пространство . При просмотре файла с cat -e
, он будет отображен как M-
как в этом примере:
$ printf '\xa0\n' | cat -e
M- $