Откуда берется последний символ новой строки в результате этого sed?

Он использует базу данных пантомимы. Вы можете использовать редактор Mime Type Editor в Xfce, чтобы изменить пользовательские -приложения по умолчанию (xfce4-mime-settings).

7
29.08.2019, 19:13
2 ответа

p добавляет символ новой строки:

% printf 1 | sed 'p;s/1/2/'
1
2%

Как видно, 2печатается без завершающей новой строки, но 1 перед ней из pесть.

10
27.01.2020, 20:15

Кажется, я нашел ответ. Из документации POSIX sed вhttps://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.htmlговорится:

Whenever the pattern space is written to standard output or a named file, sed shall immediately follow it with a newline.

Это означает, что команда pвсегда будет печатать пространство шаблона, а также новую строку. Это также объясняет, почему после 2\n\n1, 4\n\n1\n3и 6\n\n1\n3\n5есть новые строки.

Пожалуйста, поправьте меня, если вы считаете, что с этим что-то не так. Спасибо.

6
27.01.2020, 20:15

Теги

Похожие вопросы