2015-03-10 2 views
1

можно преобразовать LF в CRLF, используяTextMate расслоения для преобразования конца строки из CRLF в LF

sed "s/$/`echo -e \\\r`/" 

Я также могу удалить все концы строк с

perl -pe 's/\r|\n//g' 

Я создал модифицированную версию, которую я думал удалит только CR из CRLF, но, похоже, он не работает, никаких идей?

perl -pe 's/\r//g' 

Update: Сценарий Perl работает только не с редактором Apple Mac OS X TextMate как он не отображает или читать \ г.

+0

Что вы подразумеваете под * ", похоже, не работает" *? Это должно делать именно так, как вы просите. На какой платформе вы работаете? Если вы находитесь в Windows, Perl вернет CR на выходе, но он также будет удален на входе, поэтому в программе нечего удалить. – Borodin

+0

Я использую редактор Mac под названием TextMate. Я подозреваю, что как только я переработал окончание строки, когда я сохраню файл, он вернет их обратно. Странная вещь заключается в том, что она не возвращается обратно, когда я конвертирую концы строк из LF в CRLF. – TSUK

+0

Я думаю, что я, возможно, взломал его, TextMate не отображает или не читает \ r. Я искал и заменил perl -pe '/ \ 015 /,/g', но никаких запятых не появилось. Похоже, мне нужно будет сделать с File> Save As - Line Endings: LF – TSUK

ответ

1

В окне, отличном от Windows, код, указанный вами, действительно работает.

$ echo -ne "foo\r\nbar\r\n" | od -c 
0000000 f o o \r \n b a r \r \n 
0000012 

$ echo -ne "foo\r\nbar\r\n" | perl -pe's/\r//g' | od -c 
0000000 f o o \n b a r \n 
0000010 

На машине Windows (который по умолчанию перевод CRLF ⇒ LF на чтение и LF ⇒ CRLF на записи), вы можете использовать

perl -pe"BEGIN { binmode STDOUT }" 

Есть портативные решения, но они больше.

Смежные вопросы