Я пишу следующий код в своем скрипте bash (работает на версии redhat 7.2)
, чтобы добавить содержимое переменной $ info перед словом - ОШИБКА: в файле
export info="The Postfix error(8) delivery agent processes delivery requests from the queue manager. Each request specifies a queue file, a sender address, the reason for non-delivery (specified as the next-hop destination), and recipient"
perl -i -plne 'print "$ENV{info}" if(/ERROR:/);' file
после запуска кода вывод файла, который мы видим, слишком длинный, и лучше разделить строку на 3 строки
more file
The Postfix error(8) delivery agent processes delivery requests from the queue manager. Each request specifies a queue file, a sender address, the reason for non-delivery (specified as the next-hop destination), and recipient
ERROR:
Поэтому я добавляю «\ n»в информационной строке, как показано ниже: и мы снова запускаем код
export info="The Postfix error(8) delivery agent processes delivery requests from the queue manager. \nEach request specifies a queue file, a sender address, \nthe reason for non-delivery (specified as the next-hop destination), and recipient"
perl -i -plne 'print "$ENV{info}" if(/ERROR:/);' file
, но файл все еще не содержит новые строки (на самом деле "\ n" в строке)
The Postfix error(8) delivery agent processes delivery requests from the queue manager. \nEach request specifies a queue file, a sender address, \nthe reason for non-delivery (specified as the next-hop destination), and recipient
ERROR:
в то время как ожидаемые результаты должны быть:
The Postfix error(8) delivery agent processes delivery requests from the queue manager.
Each request specifies a queue file, a sender address,
the reason for non-delivery (specified as the next-hop destination), and recipient
ERROR:
Где я здесь не прав?