URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10220
[ Назад ]

Исходное сообщение
"Как записать несколько строк в файл с виндоус кодировкой ?"

Отправлено universite , 22-Апр-18 03:03 
Имеется некая дискетка с FreeDOS. Она соответсвующим образом смонтирована на запись во FreeBSD.

Но не удается записать пару строк autoexec.bat

Пробовал


printf '%s\n%s\n' 'Hello' 'World!' >> $dir_tmp/ourimage/autoexec.bat
echo "AMI.BAT X9DRD5.116"       >> $dir_tmp/ourimage/autoexec.bat

и


echo "Hello"       >> $dir_tmp/ourimage/autoexec.bat
echo "World!"                        >> $dir_tmp/ourimage/autoexec.bat
echo "AMI.BAT X9DRD5.116"       >> $dir_tmp/ourimage/autoexec.bat

Все равно на выходе:


HelloWorld!AMI.BAT X9DRD5.116

P.S. echo -e во FreeBSD не работает....


Содержание

Сообщения в этом обсуждении
"Как записать несколько строк в файл с виндоус кодировкой ?"
Отправлено PereresusNeVlezaetBuggy , 22-Апр-18 05:52 
>[оверквотинг удален]
> echo "World!"          
>            
>   >> $dir_tmp/ourimage/autoexec.bat
> echo "AMI.BAT X9DRD5.116"       >> $dir_tmp/ourimage/autoexec.bat
>

> Все равно на выходе:
>
 
> HelloWorld!AMI.BAT X9DRD5.116
>

> P.S. echo -e во FreeBSD не работает....

Потому что в Windows разделитель строк — \r\n, а в *nix только \n. FreeBSD как таковая тут ни при чём.

Скорее всего, вот так сработает:

echo "Hello\r"; echo "World!\r"

А если нет, то есть 100% портабельный вариант:

printf "Hello\r\nWorld!\r\n"


"Как записать несколько строк в файл с виндоус кодировкой ?"
Отправлено universite , 22-Апр-18 07:08 

> А если нет, то есть 100% портабельный вариант:
>
printf "Hello\r\nWorld!\r\n"

Спасибо, заработало.


"Как записать несколько строк в файл с виндоус кодировкой ?"
Отправлено pavlinux , 12-Май-18 04:33 
>> А если нет, то есть 100% портабельный вариант:
>>
printf "Hello\r\nWorld!\r\n"

> Спасибо, заработало.

Есть древнющая утиль -  dos2unix, правда уже разрослась до мегаконвертера.


$ cat unixfile.txt
Hello
World!

$ unix2dos < unixfile.txt > windowsfile.txt


$ cat windowsfile.txt | od -c
0000000   H   e   l   l   o  \r  \n   W   o   r   l   d   !  \r  \n
0000017