$ awk -F'[0-9]' '{ print $1 }' file
John Smith
Amy Brown and Sally Williams
Sunny's
Com -F'[0-9]' , dizemos que os dígitos devem ser considerados separadores de campo nos dados de entrada e, com print $1 , emitimos o campo separado por primeiro dígito.
Altere -F'[0-9]' para -F' *[0-9]' para também se livrar de qualquer espaço antes do dígito.