1

отчет читается в off-топе, а генерируется в on-топе.

создаю .txt файл, отдаю его "читателям"
читателям, мягко говоря, "не нравится" постоянно открывать его в word-pade, хотят открывать его в блокноте.
в блокноте текст уплывает далеко вправо, игнорируя символ новой строки.

как заменить символ новой строки на офтопный, чтобы можно было блокнотом открывать?

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

2

man unix2dos bx

3

http://en.wikipedia.org/wiki/Unix2dos

Да, у меня Ubuntu.
Нет, не глючит.

4 (11.10.2013 10:56:33 отредактировано moshell)

спасибо, работает.
и текст распознается в винде и новые строки.

только вот в линуксе уже крокозябра появляется.

в какую кодировку лучше кодировать чтоб в линуксе тоже было читабельно?


//add
разобрался
unix2dos -n inputfile outputfile
данная опция равносильна

-ascii
           Convert only line breaks. This is the default conversion mode.

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

5

moshell пишет:

только вот в линуксе уже крокозябра появляется.
в какую кодировку лучше кодировать чтоб в линуксе тоже было читабельно?

Кракозябры появляются после unix2dos? Тогда попробуйте использовать sed :

$ sed -i -e 's/$/\r/' <file>
Да, у меня Ubuntu.
Нет, не глючит.

6

moshell пишет:

только вот в линуксе уже крокозябра появляется.

в какую кодировку лучше кодировать чтоб в линуксе тоже было читабельно?

sed -ri 's/\s*$//' <filename>

удалит все пробелльные символы в конце строки

'\r' тоже пробельный, и значит в *NIX -- возврат каретки. Только я не понимаю, откуда кракозябры? Чем читали? Нормальный редактор нарисует там пробел, или что-то подобное. Консоль переведёт каретку в начало, что никак НЕ изменит вывод, т.к. там \n

$ echo -e "ABC\rXY"
XYC
Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

7

и да, проблема с кодировками решается программой

iconv -f ОТКУДА -t КУДА <filename>

причём если вам нужно ПРОЧИТАТЬ маздайный текст, то КУДА писать не нужно. Системе лучше знать, КУДА.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

8

Док, я буду скучать

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

9

moshell, я никуда не денусь.  Если что: http://emulek.blogspot.ru
там можно писать вопросы по поводу работы в командной строке.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

10

drBatty пишет:

moshell, я никуда не денусь.  Если что: http://emulek.blogspot.ru
там можно писать вопросы по поводу работы в командной строке.

ну все. ухожу с линфорума.
пусть лучше один док надо мной ржать будет чем целая армия Ъ-шников  ag

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

11

drBatty пишет:

нарисует там пробел, или что-то подобное

Пожалуй, чаще всего вместо \r будет "нарисован" ^M.

12

bormant пишет:

Пожалуй, чаще всего вместо \r будет "нарисован" ^M.

в самое яблочко!

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

13

moshell пишет:
bormant пишет:

Пожалуй, чаще всего вместо \r будет "нарисован" ^M.

в самое яблочко!

Хотите знать, почему? ;-)

14

-=Serj=- пишет:
$ sed -i -e 's/$/\r/' <file>
drBatty пишет:
sed -ri 's/\s*$//' <filename>

что то я не понял. вывода от команды никакой. куда идет вывод?

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

15

moshell пишет:

что то я не понял. вывода от команды никакой. куда идет вывод?

man sed, ключик -i
http://www.lissyara.su/doc/man/sed/

Да, у меня Ubuntu.
Нет, не глючит.

16

bormant пишет:

Хотите знать, почему? ;-)

потому-что это "пробел или что-то подобное".

moshell пишет:

что то я не понял. вывода от команды никакой. куда идет вывод?

во временный файл. Который потом переименовывает, а старый удаляет(или тоже переименовывает).

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

17

-=Serj=- пишет:

man sed, ключик -i
http://www.lissyara.su/doc/man/sed/

-i extension Редактирует файлы с замещением, сохраняя резервную копию с указанным расширением. Если расширение не указано (нулевой длины), резервная копия не будет сохраняться. Не рекомендуется присваивать нулевое расширение к замещаемым файлам, поскольку вы рискуете полностью или частично повредить файл, когда место на диске исчерпано.

вот автор этого мана умный, ажно жуть берёт. Зачем-то свой бред приписал... Про "повреждение"...

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

18 (11.10.2013 22:54:26 отредактировано moshell)

все это я уже узнал (про ключ -i). но все равно спасибо.
только вот толку нету. как было так и осталось. с виду все ок. file -i что там - что там - показывает одно и то же charset=utf-8

так в чем же разница?

кстати что за utf-8 который с BOM и который без него? (notepad++ по разному их видит)


в общем так. генерирую некий файл в линуксе(guest), без перекодирования, путем копипаста из консоли (через putty) мышью переношу его в Windows(host), создаю файл в виндовсе и копирую в него - тогда все гуд, далее "заказчики" удовлетворены. потому что эти скрипты они кидают в некую шайтан машину, конфигурируют ее.

а если генерирую этот файл в линуксе, перекодирую (иначе в блокноте всё убегает вправо, в отличие от первого метода) и кидаю этот файл в "портал между гостевой ос и host"  {/mnt/hgfs/shara/...} то тут уже какая то беда.  "Заказчик" говорит что шайтан машина не воспринимает правильно - интерпретирует табуляцию как не знаю что.

и вот не в курсе в какой фазе луна сегодня?
с виду оба варианта выдают charset=utf-8.
так в чем беда?



и для чего мне нужен ответ.
меня напрягает мышью копипастить. я хочу просто выполнять скрипт и его детище отсылать почтой без лишних манипуляторов

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

19

moshell пишет:

а если генерирую этот файл в линуксе

Пример получившегося файла увидеть бы.

$ cat -A <file>
moshell пишет:

перекодирую

И этот файл.

Да, у меня Ubuntu.
Нет, не глючит.

20

-=Serj=- пишет:
moshell пишет:

а если генерирую этот файл в линуксе

Пример получившегося файла увидеть бы.

$ cat -A <file>
moshell пишет:

перекодирую

И этот файл.

почту можете дать? инфа как бы служебная

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

21

moshell пишет:

все это я уже узнал (про ключ -i). но все равно спасибо.

что именно? Что в одних доках одно, а в других другое? А где правда?

moshell пишет:

кстати что за utf-8 который с BOM и который без него? (notepad++ по разному их видит)

utf-8 ОДНО.

http://ru.wikipedia.org/wiki/Byte_order_mark

с другим BOM это НЕ utf-8.

moshell пишет:

и вот не в курсе в какой фазе луна сегодня?

я без понятия. Могу только сказать, что не нужно копипастить.

И ещё: utf-8 НИКАКОГО отношения к табуляциям и пробелам не имеет. Ну почти -- в utf-8 есть свои пробелы. Но вряд-ли они у вас появились.

Скорее всего, при ваших копипастах что-то потерялось.

moshell пишет:

отсылать почтой без лишних манипуляторов

отошлите. Я не понимаю проблемы. ну мне что-ли пошлите на emulek.314 со6ачка gmail.com

кусочек в две строки.

только поясните, где там (не)должны быть пробелы, и где (не)должно быть всё остальное.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

22

Док, если бы я знал в чем проблема, я бы не доставал тут LF тупыми вопросами.

в общем есть железка 2го уровня. настраивается она через консоль. тупо кидаешь в консоль копипасту хоть сколько строк и она ест их.
но беда в том, что при определеных манипуляциях эта тупая железяка не съедает то что ей дают. выдает ошибки. интерпретирует табуляцию как повтор!!!!! команды. что за х я не в курсе

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

23

moshell пишет:

Док, если бы я знал в чем проблема

проблема в том, что копипастить не нужно из одной ОС в другую. Файлы нужно передавать через "общую папку", или по почте во вложениях, или в виде архива. Но НЕ копипастой.

moshell пишет:

в общем есть железка 2го уровня. настраивается она через консоль. тупо кидаешь в консоль копипасту хоть сколько строк и она ест их.

а что, /dev/stdin она есть не в состоянии? Ну не верю жеж...

moshell пишет:

но беда в том, что при определеных манипуляциях эта тупая железяка не съедает то что ей дают. выдает ошибки. интерпретирует табуляцию как повтор!!!!! команды. что за х я не в курсе

обратитесь к разработчикам. Вряд-ли они вообще думали о копипасте. Это скорее всего ваше изобретение.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

24

drBatty пишет:

utf-8 ОДНО.

док

http://i017.radikal.ru/1310/2a/95c18697a176.jpg

я не стрононник офтопа, но все же.
видимо notepad++ писали быдлокодеры?

я не пойму до сих пор взаимосвязь.
у меня vm'варя на нее я иду через putty.
все конфиги для вмвари установлены. есть общая фолдер. уже писал о ней.
так вот есть разница когда копипаста и когда через то что вы указали

drBatty пишет:

Файлы нужно передавать через "общую папку"

это putty жрет символы или что?

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

25

Беда в следующем.

я, перед отправкой конфигов "читателю", проверяю их сам лично удаленно на серваке запуская их в удаленной соляре. и все работает.
"читатель" он же "заказчик" делает это локально. без сервака, у него не получается.

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

26

bormant пишет:
moshell пишет:
bormant пишет:

Пожалуй, чаще всего вместо \r будет "нарисован" ^M.

в самое яблочко!

Хотите знать, почему? ;-)

вот теперь вопрос АКТУАЛЕН!
ХОЧУ!

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

27

moshell пишет:

я не стрононник офтопа, но все же.
видимо notepad++ писали быдлокодеры?

utf-8 ОДНО.

Первым символом _МОЖЕТ_ быть BOM, для указания того, что это utf-8, а не что-то другое. В современных Linux'ах везде utf-8, потому BOM и не пишут. В венде нужно писать, ибо у них куча разных юникодов. Это же система из сплошных NIH.

moshell пишет:

это putty жрет символы или что?

может и она. А может -- маздайное окно, через которое putty работает. Я без понятия.

moshell пишет:

вот теперь вопрос АКТУАЛЕН! ХОЧУ!

ну ^M это вообще-то CTRL+M, обычно биндится на "новая строка", типа ENTER.

Таких символов две штуки:

1. '\n' переводит бумажку на строчку вверх

2. '\r' переводит каретку на первую позицию в строке.

В Linux ставят только №1, в огрызке только №2, а в маздае сначала №2, а потом №1.

В принципе в Linux консоли пойдёт и как в маздае. Там этот символ действительно "переводит каретку". Т.е. можно напечатать строчку, потом '\n', а потом сначала.

$ echo -e '1234567890\rABCDEF'
ABCDEF7890

но текстовые редакторы обычно неадекватно реагируют...

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

28

маздайное окно как раз работает хорошо для "шайтан машины l2 уровня"
я все равно весь в печали.
либо вино, либо луна такая тугая, либо еще чего.
во вторник отвечу, до вторника здравый смысл меня не настигнет

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс

29 (12.10.2013 03:22:37 отредактировано moshell)

drBatty пишет:

Таких символов две штуки:

1. '\n' переводит бумажку на строчку вверх

2. '\r' переводит каретку на первую позицию в строке.

В Linux ставят только №1, в огрызке только №2, а в маздае сначала №2, а потом №1.

док, вот тут интересно

"Фирма Майкрософт не собирается поддерживать протокол TCP/IP в своих OS" 1993 (c) Билл Гейтс
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс