Страница 1 из 2
удалить в тексте ^M
Добавлено: 2008-08-03 3:05:12
ProFTP
как удалить перенос с ^M из виндовс?
у меня был скрипт, но я его потерял, сейчас в гугле найти не могу, подскажмите такой скрипт плиз
Re: удалить в тексте ^M
Добавлено: 2008-08-03 3:19:10
zingel
Заливать на ftp файлы нужно в binary mode просто

Re: удалить в тексте ^M
Добавлено: 2008-08-03 3:20:41
zingel
Re: удалить в тексте ^M
Добавлено: 2008-08-03 3:21:17
ProFTP
файл уже есть...
он через http получился
на perl я не найду как решить... может плохо искал в гугле, но не знаю что туда написать чтобы найти...
Re: удалить в тексте ^M
Добавлено: 2008-08-03 3:22:04
ProFTP
спасибо, на shell уже забыл
Re: удалить в тексте ^M
Добавлено: 2008-08-03 3:27:25
ProFTP
не работает
Код: Выделить всё
cat t.txt > sed 's/^[ ^M ]*//')
Syntax error: ")" unexpected
Re: удалить в тексте ^M
Добавлено: 2008-08-03 3:33:35
zingel
ну скобочку убрать сложно что ли?
Re: удалить в тексте ^M
Добавлено: 2008-08-03 3:36:14
ProFTP
Код: Выделить всё
$ cat t.txt > sed 's/^[ ^M ]*//'
cat: s/^[ ^M ]*//: No such file or directory
Re: удалить в тексте ^M
Добавлено: 2008-08-03 3:37:37
zingel
я в шоке, иде скорей man regexp && man intro, пока никто не видет....

я потом потру....
UPD:
даже вот так:
Код: Выделить всё
cat t.txt | sed 's/^[ ^M ]*//' > t-new.txt || echo "error"
Re: удалить в тексте ^M
Добавлено: 2008-08-03 3:46:21
ProFTP
сори, затупил
я уже кажеться догадался ак на своем любимом perl
и перебрать
Re: удалить в тексте ^M
Добавлено: 2008-08-03 4:01:53
ProFTP
zingel писал(а):я в шоке, иде скорей man regexp && man intro, пока никто не видет....

я потом потру....
UPD:
даже вот так:
Код: Выделить всё
cat t.txt | sed 's/^[ ^M ]*//' > t-new.txt || echo "error"
не работает
тоже самое, этот символ остаеться...
ладно, погуглю тогда может найду, просто на перле, я прывык открыть файл масивом, тут помои-иу каждый элемент масива - строка, просто перебрать надо...
Re: удалить в тексте ^M
Добавлено: 2008-08-03 4:09:18
ProFTP
Код: Выделить всё
#!/usr/local/bin/perl
open(MA, "t.txt"); while ($line = <MA>) { $line=~s{^M}{}ig; print $line; }
Re: удалить в тексте ^M
Добавлено: 2008-08-03 4:15:43
ProFTP
НЕ работает все равно
Re: удалить в тексте ^M
Добавлено: 2008-08-03 4:26:37
zingel
Семён Семёныч....
нажимаем:
внутрях его жмём
и вводим после двоеточия:
Re: удалить в тексте ^M
Добавлено: 2008-08-03 4:40:46
ProFTP
спасибо кончено, но не получилось, в vi я не шарю, такое может сделать kate, но он не ставиться!!
а другого редактора нету?
я написал Ctrl+M он перешел на другу строку просто, и вводить не куда было...
в perl не получилось скалярную величину сохранить в файл, тоже, может помоглобі открыть и закрыть...
Re: удалить в тексте ^M
Добавлено: 2008-08-03 4:43:27
zingel
Re: удалить в тексте ^M
Добавлено: 2008-08-03 4:51:22
ProFTP
не получаеться
отвичает:
Код: Выделить всё
:No match found
The No command is unknown
:%s/^M//g
No match found
:s/^M//g
No match found
:
щас попробую в гугде посмотреть, отпишусь
кодировка в файле utf8 он ее собьет наверное, в консоле другая - стандартная кодировка
Re: удалить в тексте ^M
Добавлено: 2008-08-03 7:28:11
zg
юзайте фильтр col -b
Код: Выделить всё
# cat 1.php | cat -v
Hello^M
World!^M
# cat 1.php | col -b | cat -v
Hello
World!
Re: удалить в тексте ^M
Добавлено: 2008-08-03 7:47:46
ProFTP
кодировка utf8, он сносит все русское...
перл когда работал, ничего не сносил....
Re: удалить в тексте ^M
Добавлено: 2008-08-03 13:23:57
zg
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
#
Re: удалить в тексте ^M
Добавлено: 2008-08-04 1:57:49
ProFTP
спасибо, я что-то полинился локаль менять
еще можно вот так, но он снесет будет просто прямая строка для nix это подходит
Код: Выделить всё
#!/usr/local/bin/perl
open(MA, "t.txt"); while ($line = <MA>) { $line=~s/\r//; print $line; }
Код: Выделить всё
$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: $!";
Re: удалить в тексте ^M
Добавлено: 2008-08-04 12:14:21
salvator
Код: Выделить всё
cat file1.txt | perl -ne 'chomp; print $_, "\n";' > file2.txt
Re: удалить в тексте ^M
Добавлено: 2008-08-19 8:53:22
manefesto
епт...вы чо....есть же утилита dos2unix
Re: удалить в тексте ^M
Добавлено: 2008-08-20 21:06:07
zg
manefesto писал(а):епт...вы чо....есть же утилита dos2unix
где ж ты раньше то был

Re: удалить в тексте ^M
Добавлено: 2008-08-21 6:41:46
manefesto
а я в этой ветке редко бываю