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

81

Eu tenho um arquivo no qual preciso copiar o conteúdo para outro arquivo ou aplicativo e, em vez de abri-lo, selecione todo o texto e copie e cole. Gostaria de saber se posso efetivamente cato conteúdo do arquivo na área de transferência. Isso é possível?

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

Jonathon Watney
fonte
1
Ah, eu sabia que já havia sido perguntado antes, para Windows: "Como canalizar texto da linha de comando para a área de transferência" em superuser.com/questions/97762/… Talvez deixe isso aberto para o Linux, então?
Arjan
1
Subúrbio. Parece que eu posso usar o clip.exe para isso. Ainda assim, gostaria de uma versão sem linha de comando. Talvez através do menu de contexto do Windows Explorer?
precisa

Respostas:

62

Como você não perguntou sobre Macs: cat file | pbcopy(e da mesma forma pbpaste) para eles.

Arjan
fonte
Droga. Eu não uso um Mac. Manterá para referência futura embora. ;)
Jonathon Watney
ele está trabalhando no Mac também;)
HMagdy
51

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

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

Justin Smith
fonte
23
Exemplo de uso:xclip -sel clip < ~/.ssh/id_rsa.pub
wim 12/03
13

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

xclip -i -selection c file_to_copy_to_clipboard.txt

Eu vi @ JustinSmith também mencionado, xclipmas 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

Sam Stoelinga
fonte
2

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

type myFile.txt > clip 

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

  • Você deseja anexar a um arquivo existente os valores do CLIP, como de costume:

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

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

    digite clip> target.txt (ou seu arquivo de destino - adicionará dados ou OVERWRITE significa excluir o existente dentro desse arquivo de destino)

Hichem Al Abbessi
fonte
1

Use este programa f2clip. Execute-o na linha de comando. Ele copia o conteúdo do arquivo na área de transferência. Eu o uso para copiar arquivos de texto no navegador da web para processamento adicional. Faça o download em http://smrz.xf.cz/f2clip.exe ou escreva 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.

Desculpa.

JanSmrz
fonte
1
+1. Agradeço esse esforço, apesar de achar que o xclip é uma solução melhor.
0xc0de 29/09/2013