Uma versão alternativa, mais lenta e mais longa.
#!/bin/sh
if [ ! -f "$1" ]
then
printf "No input file\n"
exit
fi
FIRST='head -n 1 "${1}"'
LAST='tail -n 1 "${1}"'
MID='sed -n '$d; 2,$p' "${1}"'
printf "${FIRST}\n${LAST}\n${MID}\n"
exit
Mais lento porque usa head
, tail
e sed
para acessar o arquivo a cada vez. Em um arquivo grande (ou muitos arquivos) isso pode ser muito perceptível.