usar awk para cortar la primera y última campos:
awk '{$1 = ""; $NF = ""; print}' inputfile
Por desgracia, que deja a los separadores de campo, por lo
aaa bbb ccc
convierte
[space]bbb[space]
Para hacer esto utilizando la respuesta de Kurumi que no dejará espacios adicionales, pero de una manera que es específico para sus requisitos:
awk '{delim = ""; for (i=2;i<=NF-1;i++) {printf delim "%s", $i; delim = OFS}; printf "\n"}' inputfile
Esto también soluciona un par de problemas en esa respuesta.
Para generalizar que:
awk -v skipstart=1 -v skipend=1 '{delim = ""; for (i=skipstart+1;i<=NF-skipend;i++) {printf delim "%s", $i; delim = OFS}; printf "\n"}' inputfile
A continuación, puede cambiar el número de campos para saltar al principio o al final cambiando las asignaciones de variables en el principio del comando.
It wor ks mucho mejor con un delimitador ....... cut -d '' -f -2 <<< 'This is a test' – Yogamurthy