cat texto da área de transferência em um terminal?

1

Eu tenho texto na área de transferência. Eu quero cat-lo em um terminal de um tubo em outro comando.

O caso de uso exato é um certificado X509 codificado por PEM em um site apresentado como texto ( -----BEGIN CERTIFICATE----- ... ). Eu quero selecioná-lo, copiá-lo e, em seguida, cat-lo em um terminal e pipe-lo do utilitário x509 do OpenSSL para despejar o certificado.

Como um gato texto na área de transferência para o terminal? (Se possível, gostaria de fazer isso com o Linux e com o OS X, já que uso os dois).

    
por jww 27.07.2014 / 11:00

3 respostas

3

Para o OS X, pbpaste e pbcopy fazem o que você deseja - colando e copiando com stdin / stdout, respectivamente. Source

Para X (como no X11 / Xorg), há xclip . A gravação da saída em stdout pode ser selecionada com o parâmetro -out . Fonte

    
por 27.07.2014 / 11:06
2

Com relação ao xclip use , descobri que isso é útil - encontrado em algum lugar na rede.

- 8 < - área de transferência -

#!/bin/bash
# Usage: someapp | clipboard     # Pipe someapp's output into clipboard
#        clipboard | someapp     # Pipe clipboard's content into someapp
#

if command -v xclip 1>/dev/null; then
    if [[ -p /dev/stdin ]] ; then
        # stdin is a pipe
        # stdin -> clipboard
        xclip -i -selection clipboard
    else
        # stdin is not a pipe
        # clipboard -> stdout
        xclip -o -selection clipboard
    fi
else
    echo "Remember to install xclip"
fi
    
por 27.07.2014 / 11:34
1

Se você copiou dados para a área de transferência

xclip pode ser usado para imprimir o conteúdo da área de transferência para o padrão, para que você possa canalizar e processá-lo como xclip -o -selection clipboard | ... .

OR

Salve-o em uma variável e echo .

cert='-----BEGIN CERTIFICATE----- ...'; 
echo $cert | ...'

Se os dados estiverem em um arquivo

Como todos sabem cat fazem o trabalho.
cat /path/to/file | ...

Se os dados estiverem na web

wget pode ser usado para catar um arquivo on-line. Supondo que esteja em um arquivo de texto.
wget -O- www.site.com/path/to/file.txt | ...

    
por 31.07.2014 / 18:57