ИМХО, нет решения оболочки (и никогда не будет), которое бы работало согласованно и надежно независимо от размеров двух файлов myheader
и myfile
. Причина в том, что если вы хотите сделать это, не возвращаясь к временному файлу (и не позволяя оболочке молча возвращаться во временный файл, например, через такие конструкции, как exec 3<>myfile
, конвейерную передачу к tee
и т. Д.
«Настоящее» решение, которое вы ищете, должно работать с файловой системой, поэтому оно недоступно в пространстве пользователя и будет зависеть от платформы: вы запрашиваете изменение используемого указателя файловой системы с помощью myfile
для текущее значение указателя файловой системы для myheader
и замените в файловой системе EOF
из myheader
связанной ссылкой на текущий адрес файловой системы, на который указывает myfile
. Это не тривиально и, очевидно, не может быть сделано не суперпользователем, и, вероятно, не суперпользователем ... Играть с инодами и т. Д.
Вы можете более или менее подделать это, используя петлевые устройства. Например, этот поток SO .