Nombres de archivos con espacios dentro del comando perl dentro de echo

Nombres de archivos con espacios dentro del comando perl dentro de echo

¿Cómo admito nombres de archivos con espacios en el siguiente comando?

echo "$(perl -MMIME::Base64 -e 'open F, shift; @lines=<F>; close F; print MIME::Base64::encode(join(q{}, @lines))' $filename)"

Intenté lo siguiente que no pareció funcionar:

  1. echo ... \"$filename\")
  2. echo '$(... "open..." "$filename")'
  3. echo $(...'open ... "$filename")

Respuesta1

echo "$(perl -MMIME::Base64 -0777 -pe '$_=MIME::Base64::encode$_' < "$filename")"

Supongo echoque es un ejemplo aquí. Si no, esto:

perl -MMIME::Base64 -0777 -pe '$_=MIME::Base64::encode$_' < "$filename"

sería equivalente.

Tenga en cuenta que algunos sistemas tienen un base64comando:

base64 < "$filename"

O si opensslestá instalado:

openssl base64 < "$filename"

información relacionada