Como posso carregar o conteúdo de um arquivo na área de transferência?

77

Eu tenho arquivos em que preciso copiar o conteúdo deles para outro arquivo ou para um aplicativo e, em vez de abri-lo, selecionar todo o texto, copiar e colar. Gostaria de saber se posso efetivamente cat do conteúdo do arquivo na área de transferência. Isso é possível?

Um programa do Windows seria bom, mas algo que funciona no Linux também seria útil. Eu não uso um Mac, mas pode ser útil para os outros. Pontos de bônus se isso puder ser feito na linha de comando.

    
por Jonathon Watney 25.02.2010 / 22:35

6 respostas

61

Desde que você não perguntou sobre os Macs: cat file | pbcopy (e da mesma forma pbpaste ) para esses.

    
por 25.02.2010 / 22:51
47
O

xclip (provavelmente disponível nos repositórios do seu sistema Linux) funcionará para qualquer sistema X11, incluindo a maioria das versões do Linux, ou mesmo X sendo executado no windows ou no Mac OSX.

Exemplo de uso: xclip -sel clip < ~ / .ssh / id_rsa.pub

    
por 25.02.2010 / 23:35
33

No Linux, você pode usar xsel para imitar pbcopy e pbpaste :

alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'

Fonte: Onde está Walden? »Pbcopy e pbpaste para Linux

    
por 25.02.2010 / 23:33
14

No Linux e em outros sistemas possíveis que suportam xclip :

xclip -i -selection c file_to_copy_to_clipboard.txt

Eu vi @JustinSmith também mencionou xclip , mas estava faltando um exemplo, então tive que procurar por mim mesmo.

Outro útil: cole sua área de transferência em um arquivo.

xclip -o -selection c > file_to_paste_to.txt

Fonte

    
por 05.11.2012 / 07:17
1

Use este programa f2clip. Execute-o a partir da linha de comando. Copia o conteúdo do arquivo para a área de transferência. Eu o uso para copiar arquivos de texto no navegador da web para processamento adicional. Faça o download do link ou escreva o seu próprio desta fonte (é feio):

 program f2clip;

 {$APPTYPE CONSOLE}

 uses
SysUtils,
clipbrd;

var i,r:integer;
    s:string;
 f:file;
 buf:array[0..1024*1024-1] of byte;

 data:string;
 d:pointer;
 begin
 try

 { TODO -oUser -cConsole Main : Insert code here }
    if (paramcount=0) then begin
    writeln('parameters: f2clip filename.txt');
end else begin
    write('parameter count: ');
  writeln(paramcount);  
    for i:=1 to paramcount do begin
    s:=paramstr(i);
    writeln('file: ',s);

    assignfile(f,s);
    reset(f,1);
    BlockRead(f,buf,1024*1024,r);
    writeln('size: ',r);
    buf[r]:=0;

    d:=@(buf[0]);
    data:=PAnsiChar(d);
Clipboard.AsText := data;
    close(f);
  end;

  end;

 except
   on E:Exception do
     Writeln(E.Classname, ': ', E.Message);
 end;
end.

Desculpe.

    
por 11.08.2013 / 22:45
0

use o comando "type" como um equivalente a "cat" nas janelas para enviar o conteúdo dos arquivos em formato de texto para stdout (saída padrão), pois é o emulador de terminal / prompt que você está usando (CMD nas janelas). Então você pode combinar os comandos em algo como isto:

type myFile.txt > clip 

agora o conteúdo de myFile.txt é transferido para o buffer do clipBoard (acho que é apenas um buffer, já que não é o linux). Também é um valor global, então um valor é mantido por vez em todo o sistema operacional. Então, isso é para o recurso "copiar", agora para o "colar":

  • Você quer anexar a um arquivo existente os valores do CLIP como coisas comuns:

    tipo clipe > > target.txt (ou seu arquivo de destino - adicionará dados sem excluir o arquivo existente dentro desse arquivo de destino)

  • Ou, você quer adicionar / criar um novo arquivo com os valores do CLIP como:

    tipo clipe > target.txt (ou seu arquivo de destino - adicionará dados ou SUBSTITUIR significa excluir o arquivo existente dentro desse arquivo de destino)

por 06.06.2017 / 12:44