Почему IO.read в ruby ​​добавляет новую строку? - PullRequest
0 голосов
/ 22 сентября 2018
$ echo testing > testfile
$ irb
2.5.1 :001 > IO.read('testfile')
=> "testing\n"

Попытка понять, откуда исходит новая строка, поскольку ее явно нет в файле.

1 Ответ

0 голосов
/ 22 сентября 2018

Но символ новой строки находится в файле, echo добавляет его.Вы можете сами убедиться с помощью hexdump:

$ echo testing > testfile
$ hexdump testfile 
0000000 74 65 73 74 69 6e 67 0a                        
0000008

То, что 0x0a является вашей новой строкой.

И вы можете спросить свою оболочку (предположительно bash) о echo:

$ help echo
echo: echo [-neE] [arg ...]
    Output the ARGs.  If -n is specified, the trailing newline is
    suppressed. [...]

Итак, если вы скажете echo -n testing > testfile, вы получите ожидаемые результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...