Certes, mais alors pourquoi passer par var1 ?
Par ailleurs, il ne faudrait pas ici que tes noms de fichiers contiennent des espaces, ou pire…
Et puis, si la sortie de la première commande est effectivement un nom de répertoire comme tu dis, grep ne doit pas aimer (et avant ça, cat non plus, qui est d'ailleurs inutile).
Voilà une autre manière de faire qui doit être assez robuste, pour récupérer le nom du fichier le plus récemment modifié dans le répertoire courant :
find . -maxdepth 1 -type f -printf '%T@ %f\0' | LC_ALL=C sort -zrk1 | awk 'BEGIN{RS="\0"} {print $2; exit}'
Ensuite, si tu veux faire un grep sur ce fichier, tu peux passer par xargs, en préservant le caractère nul comme délimiteur pour le nom de fichier :
find . -maxdepth 1 -type f -printf '%T@ %f\0' | LC_ALL=C sort -zrk1 | awk 'BEGIN{RS="\0"} {printf("%s\0",$2); exit}' | xargs -0 grep texto
Partager