echo 내의 perl 명령에 공백이 있는 파일 이름

echo 내의 perl 명령에 공백이 있는 파일 이름

다음 명령에서 공백이 포함된 파일 이름을 지원하려면 어떻게 해야 합니까?

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

작동하지 않는 것 같은 다음을 시도했습니다.

  1. echo ... \"$filename\")
  2. echo '$(... "open..." "$filename")'
  3. 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"

관련 정보