Вы должны сохранить результат обратной кавычки в переменной скрипта и использовать его в вызове perl, например
REPL = `cat ~/foo/bar/file.txt`
perl -pe "s/loremipsum/$REPL/ge" -i ~/path/to/target.txt
Но я думаю, было бы лучше использовать сценарий perl только для замены строки содержимым файла, потому что содержимое foo / bar / file.txt может повредить вашу команду.
1 )ваши файлы журналов СЛИШКОМ велики. добавляйте запись logrotate в свой crontab (каждые 5 минут или около того ), чтобы сделать их меньше и проще в обращении.
2 )copytruncate скопирует (50 ГБ — это много ), затем обрежет (ftruncate )файл до 0 байт. это требует времени, и вы потеряете записи при выполнении этого.
3 )попытаться разобрать файл и избавиться от ненужной информации (например, описание поля -создать заголовок )и сохранить только значения, разделенные запятой (или другим знаком ).
лучшие варианты:
-более высокая частота.
-нет копирования.
-kill -HUP процесс повторного чтения файла conf.
-вращать 1.
-сжимать.
-переместите сжатый файл журнала в безопасное место