С GNU sed
:
sed 's/\f/\n/g' file
Другое sed
s:
sed "$(printf 's/\f/\\\n/g')" file
Или с помощью tr
:
tr '\f' '\n' <file
С perl
:
perl -pi -e 's/\f/\n/g' file
-i
предназначен для перезаписи файла на месте. Для редактирования на месте с помощью tr
:
tr '\f' '\n' < file 1<> file
На самом деле не отвечаю на вопрос. но предлагая альтернативу... добавьте правило в системный журнал для пересылки всех сообщений на сервер, например.
*.* @server.host.name
Если вы сделаете это,вам не нужно сохранять/var/log
(по моему опыту, вы всегда будете заполнять свое постоянное хранилище, если у вас есть /var/log
на нем).
Обратите внимание, что вам потребуется включить сетевой модуль в системном журнале на вашем сервере. -Как это сделать, зависит от того, какое программное обеспечение системного журнала вы используете. Вам также может понадобиться иметь дело с брандмауэрами (, обычно это порт UDP 514 ).
Также обратите внимание, что вам может потребоваться использовать IP-адрес вместо server.host.name
, если ваш преобразователь DNS недоступен при запуске демона системного журнала.
Одним из (я считаю большим )преимуществом этого является то, что все ваши встроенные устройства могут вести журналы на одном сервере, а затем все журналы доступны в одном месте, -вы должны использовать правила сопоставления в программное обеспечение системного журнала вашего сервера для хранения сообщений с каждого устройства в отдельные файлы, названные в честь исходного устройства (иногда это может быть сложно настроить, но оно того стоит ).
Самый простой способ — сделать /var/log символической ссылкой на /safepath/log или что-то подобное.