Как удалить Ctrl-M из файлов, в которых отсутствуют dos2unix, perl, tr и sed?

Как удалить Ctrl-M из файлов, в которых отсутствуют dos2unix, perl, tr и sed?

Предположим, вы работаете на очень старом сервере unix, где dos2unix, perl, tr, и sedотсутствуют. Как можно преобразовать файлы издоскюниксформат?

решение1

Я думаю, вы имеете в виду удаление каретки-M в конце строк. Вы можете использовать поиск и замену в vi, чтобы сделать это.

В vi я обычно делаю: (где «^» обозначает CTRL):

:%s/^V^M//g

Что отображается на экране как:

:%s/^M//g

решение2

Сервер без trили sedдолжен быть очень старым или отсутствовать некоторые основные команды. Надеюсь, edесть; он существовал вПервое издание Unix.

ed /path/to/file
1,$s/^V^M$//
w
q

где ^V^Mозначает ввод Ctrl+, Vа затем Ctrl+ M(чтобы ввести буквальный перевод строки). Если вы знаете, что все строки заканчиваются на CR LF, вы можете использовать 1,$s/.$//вместо этого (без разбора удалить последний символ в каждой строке).

Связанный контент