Uma nota de aviso:
Quando você faz:
cmd | head
e se a saída for truncada, isso pode fazer com que cmd seja eliminado por um SIGPIPE, se ele gravar mais linhas depois que head tiver saído. Se não for o que você deseja, se você quiser que cmd continue sendo executado depois, mesmo que sua saída seja descartada, será necessário ler, mas descartar as linhas restantes em vez de sair após 10 linhas terem sido impressas (por exemplo, com sed '1,10!d' ou awk 'NR<=10' em vez de head ).
Então, para as duas abordagens diferentes:
saída truncada, cmd pode ser eliminada
cmd | awk 'NR>5 {print "TRUNCATED"; exit}; {print}'
cmd | sed '6{s/.*/TRUNCATED/;q;}'
Observe que a implementação mawk de awk acumula um buffer cheio de entrada antes de começar a processá-lo, portanto cmd pode não ser eliminado até ter escrito um buffer cheio (8KiB no meu sistema AFAICT) dados. Isso pode ser contornado usando a opção -Winteractive .
Algumas implementações de sed também leem uma linha de antecedência (para saber qual é a última linha ao usar o endereço $ ), portanto, com essas, cmd só pode ser eliminado depois de ter saído Linha 7 th .
saída truncada, o restante descartado para que cmd não seja eliminado
cmd | awk 'NR<=5; NR==6{print "TRUNCATED"}'
cmd | sed '1,6!d;6s/.*/TRUNCATED/'