m4: include вставляет завершающий пробел

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
Аватара пользователя
kt315e
Сообщения: 318
ОС: Debian 11

m4: include вставляет завершающий пробел

Сообщение kt315e »

Исходный файл:

Код: Выделить всё

Пробуем m4
include(1)
Попробовали
Файл 1:

Код: Выделить всё

1111111111
2222222222
3333333333
Завершающего перевода строки нет!
Результат:

Код: Выделить всё

Пробуем m4
1111111111
2222222222
3333333333

Попробовали
m4 вставил перевод строки. Как сделать, чтобы не вставлял?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: m4: include вставляет завершающий пробел

Сообщение Bizdelnick »

Он вставил ровно то, о чём попросили — содержимое файла 1, включая перевод строки в конце (он там есть, смотрите hexdump -C 1). И второй перевод строки у Вас был после include(1). Если нужен только один, то уберите один из них. Например, так:

Код: Выделить всё

Пробуем m4
include(1)dnl
Попробовали
Или так:

Код: Выделить всё

Пробуем m4
include(1)Попробовали
Или последний перевод строки из файла 1. Смотря что Вам надо.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kt315e
Сообщения: 318
ОС: Debian 11

Re: m4: include вставляет завершающий пробел

Сообщение kt315e »

Да. Ложная тревога. Это редактор Kate при сохранении файла 1 самовольно вставляет перевод строки :(.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5282
ОС: Gentoo

Re: m4: include вставляет завершающий пробел

Сообщение /dev/random »

kt315e писал(а):
06.04.2021 20:39
Это редактор Kate самовольно вставляет перевод строки :(.
Это не "редактор самовольно вставляет". По стандарту, в юникс-подобных системах, каждая строка текстового файла, включая последнюю, обязана оканчиваться на перевод строки. Редактор просто соблюдает это требование.
Спасибо сказали:
Аватара пользователя
kt315e
Сообщения: 318
ОС: Debian 11

Re: m4: include вставляет завершающий пробел

Сообщение kt315e »

Вы пишите удалить последний перевод строки, а он при сохранении возрождается согласно стандарту. Как правильно его удалить?
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Re: m4: include вставляет завершающий пробел

Сообщение olecya »

Код: Выделить всё

truncate -s -1 file
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5282
ОС: Gentoo

Re: m4: include вставляет завершающий пробел

Сообщение /dev/random »

kt315e писал(а):
06.04.2021 20:54
Как правильно его удалить?
Правильно - удалять не его, а тот, что после include. Bizdelnick выше привёл 2 примера, как это сделать.
Спасибо сказали:
Аватара пользователя
kt315e
Сообщения: 318
ОС: Debian 11

Re: m4: include вставляет завершающий пробел

Сообщение kt315e »

Спасибо всем. Сделаю как /dev/random пишет. Правда наглядность и красивость исходного файла немного порушится.
Спасибо сказали:
Kopilov
Сообщения: 947
ОС: [K]Ubuntu, Debian

Re: m4: include вставляет завершающий пробел

Сообщение Kopilov »

/dev/random писал:
06.04.2021 20:43
Редактор просто соблюдает это требование.
Offtopic
Тихо грущу, что IDEA этого не делает…
Спасибо сказали:
Ответить