Se você digitar
cat | openssl enc -base64
e então pressione Ctrl + D então ele irá codificar tudo que você acabou de digitar.
O seguinte comando funciona para codificar stdin usando echo :
echo "abc" | openssl enc -base64
Este comando também funciona para substituir caracteres em stdin usando cat :
cat | sed 's/a/b/g'
No entanto, o comando a seguir, que deve codificar stdin usando cat , não atende às minhas necessidades, porque ele não exibe o valor codificado toda vez que eu pressiono o retorno.
cat | openssl enc -base64
Como codifico stdin on-the-fly usando cat ?
Se você digitar
cat | openssl enc -base64
e então pressione Ctrl + D então ele irá codificar tudo que você acabou de digitar.
Primeiro de tudo, você (praticamente) nunca precisa usar cat | ou cat one_file | .
Por exemplo, o seu exemplo sed funciona bem como
sed 's/a/b/g'
Então, minha primeira sugestão é que você tente
openssl enc -base64
sem o cat .
Mas, sinceramente, não espero que isso funcione. Você pode precisar ficar um pouco mais extravagante:
while read x
do
echo "$x" | openssl enc -base64
done
Observe que isso executa um novo comando openssl para cada linha de entrada, portanto, isso pode não fornecer os mesmos resultados que a mesma entrada executa por meio de uma única chamada de openssl .
Tags command-line openssl linux