
次のコマンドでスペースを含むファイル名をサポートするにはどうすればよいですか?
echo "$(perl -MMIME::Base64 -e 'open F, shift; @lines=<F>; close F; print MIME::Base64::encode(join(q{}, @lines))' $filename)"
以下のことを試しましたが、うまくいかなかったようです。
echo ... \"$filename\")
echo '$(... "open..." "$filename")'
echo $(...'open ... "$filename")
答え1
echo "$(perl -MMIME::Base64 -0777 -pe '$_=MIME::Base64::encode$_' < "$filename")"
echo
ここに例があると思います。そうでない場合は、次のようになります。
perl -MMIME::Base64 -0777 -pe '$_=MIME::Base64::encode$_' < "$filename"
同等になります。
一部のシステムには次のbase64
コマンドがあることに注意してください。
base64 < "$filename"
または、openssl
インストールされている場合:
openssl base64 < "$filename"