Использование именованного канал и в месте замены с sed
, вы можете добавить вывод команды в верхней части файла без явной необходимости временного файла:
mkfifo output
your_command >> output &
sed -i -e '1x' -e '1routput' -e '1d' -e '2{H;x}' file
rm output
Что это делает буферизацию выхода your_command
в именованном канале (fifo) и вставляет на место этот выход с использованием команды r
sed
. Для этого вам нужно запустить your_command
в фоновом режиме, чтобы избежать блокировки вывода в fifo.
Обратите внимание, что команда r
выводит файл в конце цикла, поэтому нам нужно буферизовать 1-ю строку файла в пространстве удержания, выводя его со второй строкой.
Я пишу без явного временного файла как sed
может использовать один для себя.
спасибо, что это именно то, что мне нужно. – l1zard