удалить в тексте ^M

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

удалить в тексте ^M

Непрочитанное сообщение ProFTP » 2008-08-03 3:05:12

как удалить перенос с ^M из виндовс?

у меня был скрипт, но я его потерял, сейчас в гугле найти не могу, подскажмите такой скрипт плиз
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение zingel » 2008-08-03 3:19:10

Заливать на ftp файлы нужно в binary mode просто =)
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение zingel » 2008-08-03 3:20:41

Код: Выделить всё

sed 's/^[ ^M  ]*//')
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение ProFTP » 2008-08-03 3:21:17

файл уже есть...

он через http получился

на perl я не найду как решить... может плохо искал в гугле, но не знаю что туда написать чтобы найти...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение ProFTP » 2008-08-03 3:22:04

спасибо, на shell уже забыл
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение ProFTP » 2008-08-03 3:27:25

не работает :)

Код: Выделить всё

cat t.txt > sed 's/^[ ^M  ]*//')
Syntax error: ")" unexpected
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение zingel » 2008-08-03 3:33:35

ну скобочку убрать сложно что ли? =)

Код: Выделить всё

sed 's/^[ ^M  ]*//'
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение ProFTP » 2008-08-03 3:36:14

Код: Выделить всё

$ cat t.txt > sed 's/^[ ^M  ]*//'
cat: s/^[ ^M  ]*//: No such file or directory
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение zingel » 2008-08-03 3:37:37

я в шоке, иде скорей man regexp && man intro, пока никто не видет.... =) я потом потру....

Код: Выделить всё

cat t.txt | sed 's/^[ ^M  ]*//'
UPD:

даже вот так:

Код: Выделить всё

cat t.txt | sed 's/^[ ^M  ]*//' > t-new.txt || echo "error"
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение ProFTP » 2008-08-03 3:46:21

сори, затупил
я уже кажеться догадался ак на своем любимом perl

Код: Выделить всё

open(MA, "ma");
while ($line = <MA>)
{
и перебрать
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение ProFTP » 2008-08-03 4:01:53

zingel писал(а):я в шоке, иде скорей man regexp && man intro, пока никто не видет.... =) я потом потру....

Код: Выделить всё

cat t.txt | sed 's/^[ ^M  ]*//'
UPD:

даже вот так:

Код: Выделить всё

cat t.txt | sed 's/^[ ^M  ]*//' > t-new.txt || echo "error"
не работает

тоже самое, этот символ остаеться...

ладно, погуглю тогда может найду, просто на перле, я прывык открыть файл масивом, тут помои-иу каждый элемент масива - строка, просто перебрать надо...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение ProFTP » 2008-08-03 4:09:18

Код: Выделить всё

#!/usr/local/bin/perl
open(MA, "t.txt"); while ($line = <MA>) {  $line=~s{^M}{}ig; print $line; }
Последний раз редактировалось ProFTP 2008-08-03 4:15:55, всего редактировалось 1 раз.
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение ProFTP » 2008-08-03 4:15:43

НЕ работает все равно
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение zingel » 2008-08-03 4:26:37

Семён Семёныч....

нажимаем:

Код: Выделить всё

vi t.txt
внутрях его жмём и вводим после двоеточия:

Код: Выделить всё

%s/^M//g
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение ProFTP » 2008-08-03 4:40:46

спасибо кончено, но не получилось, в vi я не шарю, такое может сделать kate, но он не ставиться!!
а другого редактора нету?

я написал Ctrl+M он перешел на другу строку просто, и вводить не куда было...

в perl не получилось скалярную величину сохранить в файл, тоже, может помоглобі открыть и закрыть...
Последний раз редактировалось ProFTP 2008-08-03 4:44:19, всего редактировалось 1 раз.
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение zingel » 2008-08-03 4:43:27

Код: Выделить всё

Esc, Shift+Q
после двоеточия:

Код: Выделить всё

%s/^M//g
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение ProFTP » 2008-08-03 4:51:22

не получаеться

отвичает:

Код: Выделить всё

:No match found
The No command is unknown
:%s/^M//g
No match found
:s/^M//g
No match found
:
щас попробую в гугде посмотреть, отпишусь

кодировка в файле utf8 он ее собьет наверное, в консоле другая - стандартная кодировка
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: удалить в тексте ^M

Непрочитанное сообщение zg » 2008-08-03 7:28:11

юзайте фильтр col -b

Код: Выделить всё

# cat 1.php | cat -v
Hello^M
World!^M
# cat 1.php | col -b | cat -v
Hello
World!

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение ProFTP » 2008-08-03 7:47:46

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

перл когда работал, ничего не сносил....
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: удалить в тексте ^M

Непрочитанное сообщение zg » 2008-08-03 13:23:57

ProFTP писал(а):кодировка utf8, он сносит все русское...
локаль никто не отменял

Код: Выделить всё

# ./1.sh | cat -v
M-oM-;M-?M-PM-^_M-QM-^@M-PM-8M-PM-2M-PM-5M-QM-^B,^M
M-PM-<M-PM-8M-QM-^@!^M
-----------
M-PM-^_M-QM-^@M-PM-8M-PM-2M-PM-5M-QM-^B,
M-PM-<M-PM-8M-QM-^@!
# cat 1.sh
#!/bin/sh

LC_ALL=ru_RU.UTF-8
export LC_ALL

cat 1.php
echo "-----------"

cat 1.php | col -b
#

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение ProFTP » 2008-08-04 1:57:49

спасибо, я что-то полинился локаль менять :)

еще можно вот так, но он снесет будет просто прямая строка для nix это подходит

Код: Выделить всё

#!/usr/local/bin/perl
open(MA, "t.txt"); while ($line = <MA>) {  $line=~s/\r//; print $line; }

Код: Выделить всё

   $_ =~ s/\x0D?\x0A$//;

Код: Выделить всё

  $fo = new IO::File "> $fo_name" or die "Cannot open $fo_name : $!";
   binmode($fo);

   print $fo $_.chr(13).chr(10) or die "Write to $fo_name failed: $!";
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
salvator
мл. сержант
Сообщения: 88
Зарегистрирован: 2008-04-01 12:18:59
Откуда: Kiev, Ukraine

Re: удалить в тексте ^M

Непрочитанное сообщение salvator » 2008-08-04 12:14:21

Код: Выделить всё

cat file1.txt | perl -ne 'chomp; print $_, "\n";' > file2.txt

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение manefesto » 2008-08-19 8:53:22

епт...вы чо....есть же утилита dos2unix
я такой яростный шо аж пиздеЦ
Изображение

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: удалить в тексте ^M

Непрочитанное сообщение zg » 2008-08-20 21:06:07

manefesto писал(а):епт...вы чо....есть же утилита dos2unix
где ж ты раньше то был :smile:

Аватара пользователя
manefesto
Группенфюррер
Сообщения: 6934
Зарегистрирован: 2007-07-20 8:27:30
Откуда: Пермь
Контактная информация:

Re: удалить в тексте ^M

Непрочитанное сообщение manefesto » 2008-08-21 6:41:46

а я в этой ветке редко бываю
я такой яростный шо аж пиздеЦ
Изображение