Como eu uso cat para base64 codificar stdin na hora com openssl?

0

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 ?

    
por nick 23.04.2013 / 04:07

2 respostas

3

Se você digitar

cat | openssl enc -base64

e então pressione Ctrl + D então ele irá codificar tudo que você acabou de digitar.

    
por 23.04.2013 / 04:19
0

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 .

    
por 03.08.2013 / 00:32