Solução sed :
sed -e 1b -e '$!d' file
Ao ler stdin
if, seria assim (por exemplo ps -ef
):
ps -ef | sed -e 1b -e '$!d'
UID PID PPID C STIME TTY TIME CMD
root 1931 1837 0 20:05 pts/0 00:00:00 sed -e 1b -e $!d
Solução de cabeça e cauda :
(head -n1 && tail -n1) <file
Quando os dados são provenientes de um comando ( ps -ef
):
ps -ef 2>&1 | (head -n1 && tail -n1)
UID PID PPID C STIME TTY TIME CMD
root 2068 1837 0 20:13 pts/0 00:00:00 -bash
Solução awk :
awk 'NR==1; END{print}' file
E também o exemplo canalizado com ps -ef
:
ps -ef | awk 'NR==1; END{print}'
UID PID PPID C STIME TTY TIME CMD
root 1935 1837 0 20:07 pts/0 00:00:00 awk NR==1; END{print}
wc -l
nada tem a ver com a saída da última linha de um arquivo.