специальный символ в UNIX - PullRequest
0 голосов
/ 15 апреля 2010

Я хочу буквально добавить символ возврата в файл с именем «мусор». Итак, я сделал следующее
$ ed
а
меня зовут счастливым \ b (здесь b означает, что я набрал backspace, так что \ выходит из строя и курсор сидит после y)
.
ш барахло
q

Но когда я делаю
$ od -cb барахло
это не показывает возврат.

Ответы [ 2 ]

3 голосов
/ 15 апреля 2010

Хит Ctrl+V до удара backspace. Это заставляет оболочку воспринимать следующее нажатие клавиши буквально, а не интерпретировать его значение.

В зависимости от того, как настроен ваш терминал, клавиша backspace может интерпретироваться как delete, поэтому вам может потребоваться нажать Ctrl+H вместо backspace, чтобы получить символ backspace в вашем файле.

2 голосов
/ 15 апреля 2010

Тип ctrl-v, ctrl-h.

ctrl-v говорит «буквально вставить следующий управляющий символ». Курсор должен измениться на выделенную каретку.

ctrl-h - символ возврата. Похоже, что в ed, ввод ctrl-h без ctrl-v также вставляет буквенное обратное пространство, но в других контекстах crtl-h может иметь другое значение, и вам сначала нужно нажать ctrl-v.

РЕДАКТИРОВАТЬ: С помощью описанных выше шагов od -cb дал мне:

$ od -cb file
0000000   h   e   l   l   o  \b  \n
        150 145 154 154 157 010 012
0000007

, который выглядит правильно.

Когда я попробовал это снова с помощью ctrl-v, Backspace (в отличие от ctrl-h), вместо этого он выдал

$ od -cb file
0000000   h   e   l   l   o 177  \n
        150 145 154 154 157 177 012
0000007

177 - восьмеричный код ascii для DEL, а не Backspace. Это может варьироваться в зависимости от системы.

...