Проблема здесь в том, что tail
никогда не получает вывод grep
, а только первые 3 строки файла.Чтобы сделать это надежно, вам нужно либо grep
дважды, один раз с head
и один раз с tail
, либо мультиплексировать поток, например:
grep -w it /usr/include/stdio.h |
tee >(head -n3 > head-of-file) >(tail -n2 > tail-of-file) > /dev/null
cat head-of-file tail-of-file
Вывод здесь:
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
The GNU C Library is distributed in the hope that it will be useful,
or due to the implementation it is a cancellation point and
/* Try to acquire ownership of STREAM but do not block if it is not