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

Исходное сообщение
"Вопрос знатокам sed - замена символов с файле."

Отправлено Tis , 30-Мрт-06 15:11 
Есть файл (созданный в windows), который если открыть под unix содержит в конце каждой строчки символ ^M , какой командой можно быстренько и удобно удалить их?

Вот и еще - есть файл в котором полно строк содержащих пробелы созданые tab. Какой командой можно вычестить полностью файл от этих tab?


Содержание

Сообщения в этом обсуждении
"Вопрос знатокам sed - замена символов с файле."
Отправлено AMDmi3 , 30-Мрт-06 15:47 
>Есть файл (созданный в windows), который если открыть под unix содержит в
>конце каждой строчки символ ^M , какой командой можно быстренько и
>удобно удалить их?

Например, так:
| sed "s/`printf '\r'`//"
| tr -d "\r"

Есть еще специально для этого утилиты dos2unix и unix2dos (под FreeBSD ports/converters/unix2dos)

>Вот и еще - есть файл в котором полно строк содержащих пробелы
>созданые tab. Какой командой можно вычестить полностью файл от этих tab?

Не совсем понял. Просто удалить табы?
| sed "s/`printf '\t'`//g"
| tr -d "\t"

Вместо `printf '\t'` и `printf '\r'` можно сразу использовать символы ^M и <tab>, если ваш shell позволит их вставить. Либо можно сделать скрипт из одной строчки где вставить в комманду sed сразу нужный символ.


"Вопрос знатокам sed - замена символов с файле."
Отправлено Avg , 30-Мрт-06 16:31 
>Вот и еще - есть файл в котором полно строк содержащих пробелы
>созданые tab. Какой командой можно вычестить полностью файл от этих tab?

В любом Unix'e eсть команда (утилита) expand/unexpand -- первая конвертирует табуляцию в текстовые пробелы с сохранением вида таблиц, вторая наоборот.

Смотрите руководство (man expand).