¿Cómo hacer coincidir los espacios en blanco en la cadena con bash?

¿Cómo hacer coincidir los espacios en blanco en la cadena con bash?
ls
Session 9 - Terminal Value.mp4

Ahora quiero borrarlo.

shopt -s dotglob
rm -rf  .*.mp4

No tiene ningún efecto, el archivo Session 9 - Terminal Value.mp4permanece allí. .Quizás no pueda coincidir con los espacios en blanco.

Respuesta1

dotglobse usa para hacer coincidir nombres de archivos que comienzan con .(archivos de puntos) que de otro modo están ocultos cuando se usan patrones globales (a menos que .esté explícitamente presente en el patrón).

Ejemplo:

$ shopt dotglob
dotglob         off
$ touch .lala
$ ls *lala
ls: cannot access '*lala': No such file or directory
$ shopt -s dotglob
$ shopt dotglob
dotglob         on
$ ls *lala
.lala

Su patrón .*.mp4coincide con nombres de archivos que comienzan con un literal .seguido de cualquier cadena *, seguido de .mp4.

Coincidiría con el nombre del archivo, .Session 9 - Terminal Value.mp4por ejemplo (con o sin dotglobhabilitado, ya que el primero .está presente en el patrón).

Dado que el globo también coincide con los caracteres espaciales, todo lo que necesitas es

rm *.mp4

información relacionada